声明
欢迎转载,但请保留文章原始出处:)
博客园:http://www.cnblogs.com
农民伯伯: http://over140.cnblogs.com
正文
1、Selector
在Swift中可以用字符串常量来构造Selector,例如:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "handleMoviePlayerLoadStateDidChange:", name: MPMoviePlayerLoadStateDidChangeNotification, object: nil)
func handleMoviePlayerLoadStateDidChange(notification: NSNotification)
func handleMoviePlayerLoadStateDidChange(notification: NSNotification)
注意这个字符串常量最后的那个冒号,如果有一个参数就加1个冒号,没有就不加,多参数则在第一个冒号的后面接上参数名并再加一个冒号,类似于"method:param2:param3:"。
2、使用多元组(Tuple)交换变量的值
func swapMe<T>(inout a: T, inout b: T) {
(a,b) = (b,a)
}
(a,b) = (b,a)
}
3、"="不支持操作符重载(——好像不是本书的内容,暂时一并写在这一起了)
4、func的参数默认是let不可变的,可以自己自己一个var,注意这并不影响外面的参数,例如:
func incrementor(var variable: Int) -> Int {
return ++variable
}
return ++variable
}
5、需要保证在当前子类实例的成员初始化完成后才能调用父类的初始化方法。子类空初始化方法override init不需要显示的调用super.init
加convenience的初始化方法子类不能重载,但是可以调用
加required的初始化方法子类必须重载
6、在需要处理大量数据并且频繁操作 (增 减) 其中元素时,选择 NSMutableArray 和 NSMutableDictionary 会更好,而对于容器内条 目小而容器本身数目多的情况,应该使用 Swift 语言内建的 Array 和 Dictionary。
7、一般使用弱引用weak的场景:
设置delegate时
在self属性存储为闭包时,其中拥有对self引用时
8、可以以产生致命错误 (fatalError) 的方式来终止程序
比如不合法的参数
9、让一个类属性对内可读写对外只读
public class MyClass {
public private(set) var name: String?
}
public private(set) var name: String?
}
结束
学习iOS开发差不多快2月了,陆陆续续做了一些笔记,以后也会分享更多swift的内容。非常推荐大家购买和阅读这本电子版的《100个Switf必备tips》(http://swifter.tips/)!