1.## 與 @# 在宏裏面該怎樣使用函數
##
的使用, 首先咱們添加一個宏優化
1 #define LRWeakSelf(type) __weak typeof(type) weak##type = type;
##
是鏈接的做用, 即當使用上面的宏會把weak
與輸入的type
值鏈接起來以下圖:spa
#
的意思是緊跟着它的後面的標識符添加一個雙引號""
@#
的使用, 咱們添加一個普通的宏:
調試
1 #define LRToast(str) [NSString stringWithFormat:@"%@",str] 2 //這個宏須要這樣寫 3 LRToast(@"舒適提示"); 4 NSLog(@"%@",LRToast(@"舒適提示"));
強調下我只是隨便定義一個宏來作示例, 以上代碼是正常的使用,咱們在來看看添加@#
是怎麼使用的:code
1 #define LRToast(str) [NSString stringWithFormat:@"%@",@#str] 2 //這個宏須要這樣寫 3 LRToast(舒適提示); 4 //正常運行, 打印不會報錯 5 NSLog(@"%@",LRToast(舒適提示));
咱們能夠看出來 LRToast(舒適提示);
與LRToast(@"舒適提示");
區別, 也就是說@#
能夠代替@""
那麼咱們之後開發就省事了, 不用再添加@""
了!orm
2.用斷點調試崩潰問題的小技巧blog
有時候遇到Bug,會直接崩潰到主函數,這個時候咱們更想快速定位崩潰的地方。ip
Xcode提供了一個全局斷點,能夠快速定位崩潰的地方,全局斷點的添加方法:開發
可是添加全局斷點後會跳轉到主函數, 會遇到如上圖的狀況, 那麼80%
的問題就是storyboard
或者xib
拖線沒有及時清理掉壞線
,因此會形成崩潰
!string
3.App迭代開發版本號的規則
在iOS中簡單的版本號是怎樣管理的呢? 首先咱們的App
初版本首次上線, 好比以1.0.0
爲首次上線的版本號:
Bug
那咱們就要修復更新版本, 此時咱們的版本號爲1.0.1
因此說若是修復Bug
或者優化功能, 咱們只修改疊加第三位數字, 其餘不變
1.1.0
, 須要清空第三位數字爲0
, 來疊加修改第二位數字App
需求功能大改, 更新量很是大, 那咱們的版本號變爲2.0.0
, 須要疊加修改第一位數字, 清空其餘數字爲0