Swift和OC混编常用内容

 
1.获取字符串的长度:string.characters.count
2.在swift中调用OC里面使用typedef NS_ENUM定义的枚举:
   目前发现的解决方法:a.使用  枚举名称(rawValue:Int(2))
                                  b.将typedef NS_ENUM改为enum方法来实现
后续发现了另一种方法,是能成功访问的 比如AccountGender.Female,只能访问枚举的不同内容。看来swift还是很智能的。

3.字符串的连接用加号 string1+string2
4.类中声明的变量如果一开始不初始化,需要用!表示后续会初始化,不然会报错
5.字符串的比较可以用==
6.在swift中,宏可以被常量代替 let
7.在Swift中,类型的判断是非常严格的,
8.Swift中的强制转换:如果是对象的话,要使用as!
9.Swift是无法识别OC中的宏定义的http://blog.csdn.net/yongyinmg/article/details/39578677
10.在另一个类中访问枚举,必须在函数内部能够表明类型的地方,比如参数指明是那个枚举类型
11.访问本地文件

http://stackoverflow.com/questions/26376698/swift-string-type-does-not-have-a-member-named-stringwithcontentsoffile/26376809
12.为String写category extention
13.try?
14.guard http://www.jianshu.com/p/3a8e45af7fdd
15.nil在Swift中用什么类型呢
16.懒加载语法:lazy var varName:varType = {}()
17.swift是不包括预编译的,所以#ifndef等是不能使用的 但是可以使用#if #else #endif
18.swift中对象的基类不再是NSObject了,所以没有默认的init初始化函数了,但是如果我继承自NSObject,为什么依然不能使用init?
19.使用比较函数http://stackoverflow.com/questions/25502914/comparing-anyobject-in-swift
20.在lazy属性里面修改不了frame,也是奇葩了 不知道为什么
21.创建不了cell。。。。崩溃 报错;fatal error: init(coder:) has not been implemented:
http://www.cnblogs.com/li-peng/p/5543415.html
http://www.jianshu.com/p/38b4d1efd2ee(这个是正确的 不知道为什么不蹦了)
删除init(coder:)就可以 还有初始化函数。。。需要研究下为什么
22.swift调试
23.

Swift和OC混编常用内容_第1张图片

24.一定要注意 swift对象是没有基类的 也就没有初始化函数
25.swift打log

26.requiredinit?(coder aDecoder:NSCoder) 是做什么的
27.*乘法两边竟然不能是不同类型,必须转为相同类型才能相乘????
28.定义一个协议 如果在类中使用weak会报错 原因
http://stackoverflow.com/questions/33471858/swift-protocol-weak-cannot-be-applied-to-non-class-type

29.delegate如何使用respondsToSelector 不是class类型 是不能继承自NSobject
http://www.jianshu.com/p/d8724a2783e5

30.页面切的太分散 很容易造成
31.如果想在OC文件中引入swift文件,需要引入xxx-swift.h头文件才行

32.在使用嵌套枚举时, 枚举类型要详细到嵌套枚举的类型,不然识别不了。。。。。那我还嵌套个毛线啊

33.在写操作符的时候 要求严格 有空格没空格都会报错 报的错还不对
34.类型转换

35.懒加载里面竟然不能写多个let 为什么 就会不再有代码的自动补全功能

36.使用self访问和直接访问属性是不同的 有lazy修饰的属性

37.在使用过程中,用到?号的optional对象 都要用!解包

你可能感兴趣的:(Swift和OC混编常用内容)