1. LogIn 和login
LogIn 表示動詞,Login 表示名詞.
2. - (id)initUserModelWithUSerName:(NSString *)name withAge:(int)age; ***
首先, 應該使用WithAge代替age ? ?注意 也不能用andAge ?因為有的時候 ? and表示方法執(zhí)行了兩個相對獨立的操作. 此時,age 也應該使用NSInterger.?
3. weak和assign
1.代理使用weak ?因為有可能出現循環(huán)引用的現象.
2.自定義IBOutlet控件屬性一般也使用weak.
3.assign 只執(zhí)行"純量類型" (CGFloat NSInteger...)的簡單賦值操作. assign可以用非OC對象 ? weak只能用OC對象
4.copy
NSString\ NSArray\ NSDictionary\ block ?等經常使用copy?
copy 是拷貝的意思 , 方法并不保留新值. ?用NSString來說, 當傳遞給設置方法的新值是NSMutableString時,因為NSMutableString是子類,所以存在字符串的值在不知情的情況下被修改.此時需要使用copy來保證"不可變" .
故當要實現的屬性是可變的,就要用到copy
5. 成員變量 = 實例變量 = ivar
6. 全局常量寫法: 創(chuàng)建一個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. 枚舉
枚舉可以表示狀態(tài),選項,狀態(tài)碼.
凡是需要以按位或操作來組合的枚舉都應該使用NS_OPTIONS定義
如果枚舉不需要互相組合,則使用NS_ENUM定義