1. LogIn 和login
LogIn 表示动词,Login 表示名词.
2. - (id)initUserModelWithUSerName:(NSString *)name withAge:(int)age; ***
首先, 应该使用WithAge代替age 注意 也不能用andAge 因为有的时候 and表示方法执行了两个相对独立的操作. 此时,age 也应该使用NSInterger.
3. weak和assign
1.代理使用weak 因为有可能出现循环引用的现象.
2.自定义IBOutlet控件属性一般也使用weak.
3.assign 只执行"纯量类型" (CGFloat NSInteger...)的简单赋值操作. assign可以用非OC对象 weak只能用OC对象
4.copy
NSString\ NSArray\ NSDictionary\ block 等经常使用copy
copy 是拷贝的意思 , 方法并不保留新值. 用NSString来说, 当传递给设置方法的新值是NSMutableString时,因为NSMutableString是子类,所以存在字符串的值在不知情的情况下被修改.此时需要使用copy来保证"不可变" .
故当要实现的属性是可变的,就要用到copy
5. 成员变量 = 实例变量 = ivar
6. 全局常量写法: 创建一个GlobalConst文件.里面存放全局变量
---GlobeConst.h
extern NSString *const nameKey = @"name";
---GlobeConst.m
NSString *const nameKey = @"name";
7.block
block: 本质是指向结构体的指针
编译器将block的内部代码生成对应函数
查看怎么将OC转换C++ 命令行: clang -rewrite-objc XXX.m
8. 枚举
枚举可以表示状态,选项,状态码.
凡是需要以按位或操作来组合的枚举都应该使用NS_OPTIONS定义
如果枚举不需要互相组合,则使用NS_ENUM定义
网友评论