標籤:tor 分享 blog style ima 添加 form sel typeof
1.## 與 @# 在宏裡面該怎樣使用
##的使用, 首先我們添加一個宏
1 #define LRWeakSelf(type) __weak typeof(type) weak##type = type;
##是串連的作用, 即當使用上面的宏會把weak與輸入的type值串連起來如:
#的意思是緊跟著它的後面的標識符添加一個雙引號""@#的使用, 我們添加一個普通的宏:
1 #define LRToast(str) [NSString stringWithFormat:@"%@",str]2 //這個宏需要這樣寫3 LRToast(@"溫馨提示");4 NSLog(@"%@",LRToast(@"溫馨提示"));
強調下我只是隨便定義一個宏來做樣本, 以上代碼是正常的使用,我們在來看看添加@#是怎麼使用的:
1 #define LRToast(str) [NSString stringWithFormat:@"%@",@#str]2 //這個宏需要這樣寫3 LRToast(溫馨提示);4 //正常運行, 列印不會報錯5 NSLog(@"%@",LRToast(溫馨提示));
我們可以看出來 LRToast(溫馨提示);與LRToast(@"溫馨提示");區別, 也就是說@#可以代替@"" 那麼我們以後開發就省事了, 不用再添加@""了!
2.用斷點調試崩潰問題的小技巧
有時候遇到Bug,會直接崩潰到主函數,這個時候我們更想快速定位崩潰的地方。
Xcode提供了一個全域斷點,可以快速定位崩潰的地方,全域斷點的添加方法:
但是添加全域斷點後會跳轉到主函數, 會遇到如的情況, 那麼80%的問題就是storyboard或者xib拖線沒有及時清理掉壞線,所以會造成崩潰!
3.App反覆式開發法版本號碼的規則
在iOS中簡單的版本號碼是怎樣管理的呢? 首先我們的App第一版本首次上線, 比如以1.0.0為首次上線的版本號碼:
- 上線後突然發現一個嚴重的
Bug那我們就要修複更新版本, 此時我們的版本號碼為1.0.1
所以說如果修複Bug或者最佳化功能, 我們只修改疊加第三位元字, 其他不變
- 如果有了新的需求, 在原來的基礎上增加了一個新功能, 那麼我們的版本號碼變為
1.1.0, 需要清空第三位元字為0, 來疊加修改第二位元字
- 如果
App需求功能大改, 更新量非常大, 那我們的版本號碼變為2.0.0, 需要疊加修改第一位元字, 清空其他數字為0
IOS開發中一些受用的編碼和調試方法積累