SwiftswiftiOS

iOS 从Objective-C到Swift

2016-07-10  本文已影响2523人  夏天然后
swift

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

一 属性

// 常常会这样写
@property (nonatomic, copy) NSString *name;
class ViewController: UIViewController {
    var name = "Summer"
}

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

weak var btn = UIButton()

二 控制流

        let a = 10
        if a < 5 {
            // code
        }

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

        // 所以这样写, 是错误的
        let b = 10
        if b {
            //
        }
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
        }

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")
        }

三 函数(方法)

// 比如这样, 写了一个没有返回值没有参数的函数
- (void)print
+ (NSString *)returnStr
// func 关键字定义函数
// class 类方法修饰
// 返回值在 -> 之后 例子中就是没有返回值
func printf() ->Void
class func returnStr() ->String

四 初始化

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

值得注意的是: Swift为我们处理了alloc的过程, 而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

自制图片
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
---------------------------------------
上一篇下一篇

猜你喜欢

热点阅读