OC:实用方法tips

说明
首次发布 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;
});
后记

参考:该文章参考 孙老师 的博客,在此表示衷心的感谢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容