iOS 从Objective-C到Swift

swift

前言: 博主功力有限, 也是在学习的过程中, 之前写了几篇在iOS开发中使用Swift进行开发偏向于UI方向的文章, 明显地感觉到OC与Swift的之间的一些区别与联系, 并且还有一些值得注意的地方, 希望看到这篇文章的小伙伴更快地上手Swift. , 最近自己的状态也是很糟糕, 更糟糕的是感冒了(囧~). 有什么错误请评论指出, 谢谢.

一 属性

  • OC中 我们最常用的property
// 常常会这样写
@property (nonatomic, copy) NSString *name;
  • Swift中似乎更简单了: 常常这样说变量(var) | 常量(let), 示例代码如下, 我定义一个name变量赋值为Summer
class ViewController: UIViewController {
    var name = "Summer"
}

所需要注意的: 似乎Swift中并没有属性修饰(strong,weak等。)
1.1 strong在Swift中是默认的
1.2 weak: 通过weak关键词声明

weak var btn = UIButton()

二 控制流

  • if 不需要使用 () 来包裹条件了, 示例代码如下
        let a = 10
        if a < 5 {
            // code
        }

这里所需要注意的: 条件必须为 Boolean表达式

        // 所以这样写, 是错误的
        let b = 10
        if b {
            //
        }
  • for Swift为其添加了范围操作符 ... 与 ..<
for i in 1...5 {
            print(i) // 1 2 3 4 5
        }
// 同时支持自定义步长
for j in 0.stride(through: 10, by: 2) {
            print(j) // 0 2 4 6 8 10
        }
  • Switch 当然在swift中switch也有很大的提升

1.1 不需要强制加上 break
1.2 在OC中switch支持int和char类型作为匹配 而在swift中得到了很大的提升(可以对 浮点型, 字符串进行匹配了)

        // 方便了很多
        let des = "summer"
        switch des{
        case "summer":
            print("夏天然后--- \("帅哥")")
        case "1":
            print("不知道什么鬼")
        case "2":
            print("不知道什么鬼")
        case "3":
            print("不知道什么鬼")
        default:
            print("default")
        }

三 函数(方法)

  • OC中 有实例方法和类方法
// 比如这样, 写了一个没有返回值没有参数的函数
- (void)print
+ (NSString *)returnStr
  • Swift中基本都是类似的, 看示例代码感受一下
// func 关键字定义函数
// class 类方法修饰
// 返回值在 -> 之后 例子中就是没有返回值
func printf() ->Void
class func returnStr() ->String

四 初始化

var btn = �UIButton() // 这样就可以了

值得注意的是: Swift为我们处理了alloc的过程, 而init有一些需要注意的地方

  • Swift 都必须在对象被创建出来前设置好。也就是我们必须在init方法中赋好值,或是直接给属性提供一个默认值。

五 Swift如何检查delegate 是否为nil

// OC 中我们会这样写
if (self.dataSource && [self.dataSource respondsToSelector:@selector(titleForSegmentAtIndex:)]) {
        thisSegmentTitle = [self.dataSource titleForSegmentAtIndex:index];
    }
// Swift中非常简洁, 示例如下
if let thisSementTitle = dataSource?.titleFroSegmentAtIndex?(index){
}

六 扩展(Extension)

你可以看看这篇关于扩展好在哪里文章链接 - 简书

七 关于Cocoa

  • AnyObject : 在Swift中,在AnyObject上获取的property都是optional的。
    我们知道id的类型直到运行时才能被确定,如果我们向一个对象发送一条不能响应的消息,就会导致crash。我们可以利用Swift的语法特性AnyObject来防止这样的错误
  • 闭包: OC中的blockSwift中转化为闭包 使用闭包完成反向传值这是我之前写好的示例代码有兴趣可以下载看看

自制图片

Swift 使用CollectionView 封装的轮播图

自制效果图

Swift仿简书淘宝App很友好弹出view效果

播放音乐立柱

Swift版本仿网易云音乐播放音乐动画效果

我还写过一篇关于swift学习资料的请看这篇

还写了一篇关于swift简单实战- 涉及了网络请求, tableview的使用, 自定义cell, 字典转模型等等你可以看看这篇

总结: 篇幅有限, 相比于OC, Swift还有更多好玩的地方, Swift一直在更新不断变化, 确实有他的独到之处, 相信不久的将来, 会流行起来, 现在有一些公司已经开始做swift尝试了, 不管未来iOS开发的主流语言是不是Swift, 未雨绸缪总有些必要吧.

Swift Strings - 你想知道的
Swift Tips:常用的知识点总结(持续更新...) - 2016.07.11

---------------------------------------
走心文章, 值得点赞 ---文/夏天然后
微博@夏天是个大人了 QQqun: 498143780
---------------------------------------
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,458评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,454评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,171评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,062评论 0 207
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,440评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,661评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,906评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,609评论 0 200
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,379评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,600评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,085评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,409评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,072评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,088评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,860评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,704评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,608评论 2 270

推荐阅读更多精彩内容