说明 | |
---|---|
首次发布 | 2016年12月20日 |
最近更新 | 2018年02月26日 |
枚举值和字符串的映射
typedef NS_ENUM(NSUInteger, MessageType) {
MessageTypeLogin = 0,
MessageTypeRegister,
MessageTypeUpdatePsw,
};
const NSString *MessageTypeArray[] = {
[MessageTypeLogin] = @"mseesage_login",
[MessageTypeRegister] = @"message_register",
[MessageTypeUpdatePsw] = @"message_update_psw"
};
// 使用示例:
- (void)loginWithMobile:(NSString *)mobile messageType:(MessageType)type {
NSLog(@"字符串是:%@", MessageTypeArray[type]);
}
readonly属性的扩展
@interface Worker : NSObject
@property (nonatomic, readonly, copy) NSString *name;
@end
@interface Worker ()
@property (nonatomic, copy) NSString *name;
@end
小括号内联复合表达式: 意义在于将代码整理分块
,将同一个逻辑层级的代码包在一起;同时对于一个无需复用小段逻辑,也免去了重量级的调用函数。
// 示例一
self.redView = ({
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
view.backgroundColor = [UIColor redColor];
[self.view addSubview:view];
view;
});
// 示例二
self.result = ({
double result = 0;
for (int i = 0; i <= M_2_PI; i+= M_PI_4) {
result += sin(i);
}
result;
});
后记
参考:该文章参考 孙老师 的博客,在此表示衷心的感谢。