1. 關(guān)于push和pop的一些跳轉(zhuǎn)方法
方法一:代理
方法二:通知
2. 關(guān)于使用Cornerstone合并后.xcodeproj文件打不開的情況
解決辦法:1.在Finder中找到項目對應(yīng)的.xcodeproj,右鍵點擊選擇顯示包內(nèi)容
2.雙擊打開project.pbxproj文件
3.找到類似如下的沖突信息(可用command + f 搜索)
4.刪除<<<<<<.mine
======
>>>>>>>>>.r269
5.保存文件,退出x-code 重新打開即可
3. UIAppearance的用法
我們可以通過UIAppearance設(shè)置一些UI的全局效果,這樣就能很方便的實現(xiàn)UI的自定義效果又能最簡單的實現(xiàn)統(tǒng)一界面風(fēng)格
//統(tǒng)一修改某個控件的UI風(fēng)格
+(id)appearance
//修改多個控件的UI風(fēng)格
+(id)appearanceWhenContainedIn:(nullable Class <>)ContainerClass, ...
4. 獲取當(dāng)前的設(shè)備的系統(tǒng)版本號
//獲取當(dāng)前設(shè)備的系統(tǒng)版本號
[UIDevice currentDevice].systemVersion.floatValue
5. UITableView的contentInset的屬性
//官方解釋,添加額外的滾動附近區(qū)域的內(nèi)容
UITableView *tableView = [UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
//該屬性在這里表示添加向上20個像素的額外滾動區(qū)域
tableView.contentInset = UIEdgeInsetsMake(20,0,0,0);
6. 命令行的基本使用
看桌面下有什么文件 :ls desktop 回車
看桌面中的某一個文件夾下面有什么文件:ls desktop/文件名 回車
到指定的文件(如果該文件在桌面) cd desktop/文件名 回車
7. 類目的基本格式
在這里以AppDelegate類為例
在項目中是以AppDelegate+(自定義的名字)存在
在.h和.m文件中是以AppDelegate (自定義的名字)存在
8. Localizable.strings文件的創(chuàng)建
在項目中,我們可能會涉及到多語言app的開發(fā),這時Localizable.strings文件便可以派上用場了
第一步,在Supporting Files文件下創(chuàng)建Localizable.strings文件

第二步

第三步 將Localizable.strings的English勾選上

第四步 在PROJECT中的info下找到Localizations屬性,為其添加中文屬性

第五步

第六步 將對應(yīng)的key和value寫在對應(yīng)的語言文件下

第七步 在項目中使用
//如果模擬器的語言設(shè)置為簡體中文,tip輸出為姓名,如果語言為English,tip輸出為name
/*
注意:當(dāng)NSLocalizedString沒有找到key對應(yīng)的value值時,會默認(rèn)為key值
*/
NSString *tip = NSLocalizedString(@"test", @"name");
NSLog(@"%@",tip);
9. 列表刷新的問題
在項目中,我們經(jīng)常會遇到這樣的情況,后一個控制器進(jìn)行某些操作后,會引起前一個列表狀態(tài)的改變,在這里提供幾種解決辦法
1.在下一個界面,請求數(shù)據(jù)成功,發(fā)送通知給上一個界面
2.在下一個界面,執(zhí)行某一個事件后,使用代理
10. xib的cell高度自適應(yīng)問題
傳送門http://www.cocoachina.com/ios/20140922/9717.html
11. pod install SDWebImage出現(xiàn)的問題
問題1:在命令行中輸入pod install 或者是pod update 界面 卡在Updating local specs repositories
解決辦法:將pod install 換成 pod install --verbose --no-repo-update
同理 將pod update 換成 pod update --verbose --no-repo-update
問題2:在pod安裝成功后,運行項目,在SDWebImageDownloaderOperation中報Use of undeclared identifier '_executing'; Use of undeclared identifier '_finished
原因:NSOperation.h中聲明了兩個同名的屬性
解決辦法:使用@synthesize對屬性進(jìn)行重命名,在SDWebImageDownloaderOperation類的實現(xiàn)中(@implementation SDWebImageDownloaderOperation{...}下面)添加
@synthesize executing = _executing ;
@synthesize finished = _finished;
12. pch文件的創(chuàng)建問題
問題一:如何創(chuàng)建pch文件
解決辦法:右鍵項目->new File...->在彈框的左邊中選擇other,在彈框的右邊選擇PCH File ->屬于文件名后點擊Greate
問題二:如何將創(chuàng)建好的pch文件與項目關(guān)聯(lián)起來
解決辦法:點擊TARGETS->點擊Build Settings->在其下方找到Prefix Header選項 ->雙擊,填寫"項目名/pch文件名" 例:loveFlower/PrefixHeader.pch
問題三:pch文件中導(dǎo)入<UIKit/UIKit.h>報Counld not build module UIKit錯誤
解決辦法:
#ifdef OBJC
#import <UIKit/UIKit.h>
#endif
13. push后如何隱藏底部tabBar
解決辦法:
IMViewController *viewController = [IMViewController alloc] init];
viewController.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:viewController animated:YES];
14. xib如何給多個控件居中顯示
問題:在開發(fā)過程中,我們經(jīng)常會遇到,登錄界面需要適配不同的屏幕尺寸,比如要登錄名icon和登錄名textField居中顯示。
解決辦法:
第一步:創(chuàng)建控制器時,勾選上
Also create XIB file
第二步:創(chuàng)建成功之后的xib的寬和高都是600,此時在xib中把Use sizeClasses置成不打勾的狀態(tài),這樣xib的寬和高會變成320和568
第三步:拖一個view充當(dāng)背景view,然后所有的控件都加載在這個背景view上,此時我們只需對這個背景view添加一個垂直居中的約束即可
第四步:設(shè)置完之后,clear一下,然后重啟demo即可
15. 在ARC環(huán)境下如何使用MRC環(huán)境中的變量
解決辦法:在Build Phases中找到對應(yīng)的類,雙擊輸入-fno-objc-arc即可
16. 微信中點擊cell后馬上取消選中的實現(xiàn)
解決辦法:在didSelectRowAtIndexPath方法中添加一段代碼即可
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//選中后取消選中
[tableView deselectRowAtIndexPath:indexPath animated:NO];
}
17. 在數(shù)組中使用removeObject遇到的問題
問題:使用該方法remove不掉對象?
原因:數(shù)組中對象的地址和要remove的對象地址已經(jīng)不同
解決辦法:遍歷數(shù)組,找到需要remove的對象,再調(diào)用removeObject方法
附加遇到的問題:當(dāng)我們對同一個數(shù)組在同一時間進(jìn)行多種操作時,比如在同一時間進(jìn)行插入增加和遍歷刪除,這樣就會拋錯
解決辦法:使用NSMutableArray重開一個線程
NSMutableArray *copyArray = [NSMutableArray arrayWithArray:_selectArray];
18. tableView中取消cell的點擊效果
解決辦法:[tableView deselectRowAtIndexPath:indexPath animated:NO];