在从OC语言转swift的时候,相信大家都遇到过这种情况,知道在oc中如何书写某些程序,但在swift中就不明白怎么写了,在此记录些我遇到的情况,希望能够帮助那些刚刚转成swift的同学。
1、按位或的写法
由于oc语言中可以兼容c语言的写法,所以同样的代码写在swift中就会报错。
oc
UIView *view = [[UIView alloc] init];
view.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
swift
let view = UIView()
view.autoresizingMask = [.flexibleWidth,.flexibleHeight]
2、枚举为None的写法
oc中有些枚举值为XXXXNone,但在swift中你会发现没有对应的这个枚举值。这时候不要慌,用空数组([])代替就可以了。
3、对指针的操作
Objective-C和C语言经常需要使用到指针。
默认情况下,Swift 是内存安全的,这意味着它禁止我们直接操作内存,并且确保所有的变量在使用前都已经被正确地初始化了。但是,Swift 也提供了我们使用指针直接操作内存的方法,直接操作内存是很危险的行为,很容易就出现错误,因此官方将直接操作内存称为 “unsafe 特性”。过多的道理在此不过多叙述。
下面看一个操作指针的例子。
oc
MAMapPoint *p = (MAMapPoint *)malloc(sizeof(MAMapPoint) * count);
swift
let mapArr = UnsafeMutablePointer<MAMapPoint>.allocate(capacity: modelArr.count)
4、最大值
oc
CGFLOAT_MAX
swift
CGFloat.greatestFiniteMagnitude
暂时想起来不常见的写法就这么多,未完待续。。。