2>.h文件中减少使用#import 改用@class
3>用const enum代替#define
.h中
extern const NSString * MY_NAME;
.m中
const NSString * MY_NAME = @"name";
typedef NS_ENUM(NSInteger, MyNumberCount) {
MyNumberCountMargin = 20;
MyNumberCountLeftMargin = 30;
MyNumberCountRightMargin = 1 << 3;
...
};
typedef NS_OPTIONS(NSInteger, MyNumberCount) {
与enum使用相同
};
4>字面量的使用
注 : 字面量好用,但一定注意为nil有崩溃风险,变量一定要注意
NSNumber *num = @(value);
NSString *str = @(getenv(PATH));
等价于 [NSString stringWithUTF8String: getenv("PATH")(原来没见过,相对比较少用)
NSDictionary *dict = @{key1 : value1,key2 : value2...};
NSArray *array = @[obj1,obj2,obj3...};
5>用instancetype取代id作为init、工厂方法等返回值
6>使用模块建立复合关系
用@import取代#import 不需要预处理逐行用文件所有内容替换#import(原来没接触过,看着还不错,可以尝试一下)好像不需要什么操作
Build Settings -> enable Modules = YES(默认开启,开启后默认进行隐式转换#import->@import)
@import UIKit
如果只想用UIView
@import UIKit.UIView
网友评论