[圖片上傳中。已球。臣镣。(1)]######1、switch語句case中新建變量報語法錯誤智亮?
將case x: 中的代碼塊使用 { } 括起來就行忆某。
2、真機調(diào)試的時候報錯
- 缺少對應(yīng)系統(tǒng)版本的鏡像文件
- 拒絕連接阔蛉,手機沒有信任電腦
3弃舒、引入百度地圖的時候報語法錯誤
修改文件后綴名為.mm
4、 EXC_BAD_ACCESS 這個錯誤
其主要原因是因為程序訪問了錯誤的內(nèi)存地址馍忽,根據(jù)其后面的判斷棒坏,是空地址還是一個已經(jīng)釋放的對象地址燕差,具體情況具體分析
SIGSEGV 訪問了沒有開辟的內(nèi)存或是已經(jīng)釋放的內(nèi)存
SIGPIPE對一個一端已經(jīng)關(guān)閉的socket調(diào)用兩次write,第二次默認結(jié)束進程
SIGABRT程序終止坝冕,斷言或操作系統(tǒng)內(nèi)部拋出
4徒探、 product archive 無效,不可選
不要選擇模擬器喂窟,選擇Generic iOS Device 或 真機
5测暗、項目選擇不了模擬器
目標編譯版本太高 在?PROJEC -> General -> DeploymentTarget中修改
6、執(zhí)行PresentViewController比正常感覺慢
因為當前線程可以休眠了磨澡,所以執(zhí)行下面語句喚醒主線程
[self performSelectorOnMainThread:@selector(dontSleep) withObject:nil waitUntilDone:NO];//空操作碗啄,為了喚醒主線程
7、添加布局約束后不能準確獲取view的frame
在布局所在的superview調(diào)用layoutIfNeeded稳摄,然后獲取約束view的frame
8稚字、tabview和scrollview的滑動手勢沖突
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
CGPoint translation = [(UIPanGestureRecognizer *)gestureRecognizer translationInView:self];
BOOL res = fabs(translation.x) > fabs(translation.y);
return res;//判斷當下的一瞬間是上下滑動還是左右滑動
}
return YES;
}
9、兩個視圖相應(yīng)同一個手勢
默認情況下厦酬,兩個gesture recognizers不會同時識別它們的手勢,但是你可以實現(xiàn)UIGestureRecognizerDelegate協(xié)議中的gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:方法對其進行控制胆描。這個方法在這兩個gesture recognizers中的任意一個將block另一個的觸摸事件時調(diào)用,如果返回YES,則兩個gesture recognizers可同時識別仗阅,如果返回NO昌讲,則并不保證兩個gesture recognizers必不能同時識別,因為另外一個gesture recognizer的此方法可能返回YES减噪。也就是說兩個gesture recognizers的delegate方法只要任意一個返回YES短绸,則這兩個就可以同時識別;只有兩個都返回NO的時候筹裕,才是互斥的醋闭。默認情況下是返回NO。
10饶碘、iOS上下黑邊
項目中還留著Launch Screen 目尖,刪掉Launch Screen.xib
將這個換成Launch Images Source 選擇Use Asset Catalog
11、有些程序編譯完成后不運行 The file “XMPPDemoA” couldn’t be opened because you don’t have permission to view it.
cmd + shift + k,清除一下緩存就好了
12扎运、讓一個view的部分區(qū)域相應(yīng)點擊事件
重寫
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
13、讓一個手勢同時響應(yīng)上層View事件饮戳,也同時響應(yīng)下層view事件
tap.cancelsTouchesInView = NO;
14豪治、ButtonTitle水平對齊
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
15、Button點擊事件不響應(yīng)
- 可能一:沒有打開userInteractionEnabled
- 可能二: 綁定點擊事件的對象已經(jīng)被釋放掉了
16扯罐、發(fā)送一次通知響應(yīng)兩次
- 因為監(jiān)聽對象注冊了兩次负拟,而沒有移除,所以同一個地方會相應(yīng)兩次
17歹河、ScrollView設(shè)置了contentoffset之后經(jīng)過顯示和消失步驟后掩浙,contentoffset又變成了0花吟,0
是因為contentSize始終為0,當所以在重新顯示的時候又變成了0厨姚,
18衅澈、ScrollView的contentoffset莫名變成 0 ,-20
將Controller的 automaticallyAdjustsScrollViewInsets = false
19谬墙、給View設(shè)置陰影不出現(xiàn)
- 不能設(shè)置 layer.masksToBounds = YES 可以設(shè)置 clipsToBounds = YES
- 要設(shè)置 border
20今布、The operation couldn’t be completed. (FBSOpenApplicationErrorDomain error 1.)
edit scheme里面有個空的環(huán)境變量
21、preferredStatusbarStyle 無效
除了已經(jīng)理解的要始終保持是當前ViewController之外還有infoplist里面的View controller-based status bar appearance 是yes拭抬,百度導(dǎo)航可能要求是no
這個時候用[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent]
有效
22部默、Xcode8 + IOS 10 打印不全
ifndef OPTIMIZE //針對ios 10 + Xcode 8打印不全
define pNSLog(...) printf("\n%s[Line %d] %s\n",PRETTY_FUNCTION, LINE,[[NSString stringWithFormat:VA_ARGS]UTF8String]);
endif
######23、push新界面的時候卡住造虎,需要點home鍵在回來就顯示
> 因為設(shè)置了手勢的返回
######24傅蹂、數(shù)組遍歷 For in 和 for (int i;i < count; i++)的區(qū)別
> 一般情況下是沒有什么問題的算凿,但是如果for in 結(jié)束判斷是判斷遍歷到的某一個元素是否是等于最后一位則有問題
如果數(shù)組中有兩個相同的元素贬派,而其中一個剛好是最后一位則會出現(xiàn)問題,遍歷會在遍歷到第一個相同的元素的位置時跳出遍歷(這是個坑)
######25澎媒、uilabel設(shè)置了numberOfLines = 0 還是不換行
> 設(shè)置adjustFontSizeWithWidth = YES
######26搞乏、duplicate symbols for architecture
> 有可能是重復(fù)導(dǎo)入頭文件導(dǎo)致的
######27、[_titleBtns makeObjectsPerformSelector:@selector(setSelected:) withObject:@(NO)];無效
> 這個只在模擬器中有用戒努,讓數(shù)組中的所有對象都執(zhí)行指定方法