详细解决方案
Day33:Swift 和 Object - C
热度:86 发布时间:2023-09-29 18:35:19.0
- 对于自定义类而言,OC的类,不能继承自swift的类,即要混编的OC类不能是swift的子类。反过来,需要混编的swift类可以继承自OC的类。
- OC:定义一个常量值,后面可以方便使用;例如:#define TOOLBAR_HEIGHT 44;
- Swift:可以直接使用 let TOOLBAR_HEIGHT:CGFloat = 44;
- OC:定义一个不变化的常用值,或者一个较长的对象属性;如#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width);
- Swift:可以直接使用 let SCREEN_WIDTH = UIScreen.mainScreen().bounds.size.width
- OC:定义一个会变化的常量值,或者一个较长的对象属性;如#define STATUS_BAR_HEIGHT [UIApplication sharedApplication].statusBarFrame.size.height;
- Swift:可以用函数:func STATUS_BAR_HEIGHT() -> CGFloat { return UIApplication.sharedApplication().statusBarFrame.size.height; }
- OC:定义一个带参数的宏,类似一个函数;如#define RGB_COLOR(r,g,b) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1.0];
- Swift:可以用函数:func RGB_COLOR(r:CGFloat,g:CGFloat,b:CGFloat) -> UIColor{
return UIColor(red:r,green:g,blue:b,alpha:1.0)}
- swift 中有许多OC没有的特性,比如:swift有元组、为一等公民的函数,还有特有的枚举类型。所以要使用的混编文件要注意swift独有特性问题。