iOS開發(fā)時(shí)遇到的問(wèn)題記錄

用以記錄在做iOS項(xiàng)目時(shí)總結(jié)的經(jīng)驗(yàn),讓別人或自己以后少踏入這些坑。或者進(jìn)坑后如何更快脫坑。

1.以前使用Mac自帶的數(shù)碼測(cè)色計(jì)設(shè)置UIColor總是會(huì)有偏差,原來(lái)是取色器設(shè)置的問(wèn)題。
 解決方案如下:設(shè)置為顯示原生值(如下圖所示)
數(shù)碼測(cè)色計(jì)主界面.png
2.拖了一個(gè)UILabel控件,對(duì)控件添加了點(diǎn)擊事件卻無(wú)法觸發(fā)點(diǎn)擊事件
解決方案:控件的userInteractionEnabled屬性設(shè)置為YES。    代碼截圖如下:
對(duì)控件的這個(gè)屬性設(shè)置為YES
3.通過(guò)addsubview添加的視圖,UILabel的點(diǎn)擊事件不起作用。
第一步

第二步

第三步
解決方案:在sddsubview前,將添加的視圖控制器在跳轉(zhuǎn)前初始化(重點(diǎn)是要把a(bǔ)dd那個(gè)ViewController定義成屬性,就是@pro......)。
4.Mac mini更新Xcode很慢,很費(fèi)時(shí)間。而且造成機(jī)子在更新過(guò)程中很卡。

描述:更新了一個(gè)下午了,還沒(méi)更新完。


更新效果截圖

解決方案:更新需謹(jǐn)慎。

5.synthesize

@synthesize會(huì)自動(dòng)生成getter和setter的實(shí)現(xiàn)
@synthesize默認(rèn)會(huì)去訪問(wèn)age,no,height同名的變量,,
如果找不到同名的變量,會(huì)在內(nèi)部自動(dòng)生成一個(gè)私有同名變量age,no,height,,
因此Student.h中的這幾個(gè)變量也可以省略不寫。

6.Git和Subversion的區(qū)別

Subversion的提交:只要提交的內(nèi)容和版本庫(kù)的內(nèi)容不沖突,就允許提交,不管本地work copy是否最新。
Git:必須把遠(yuǎn)程版本庫(kù)的改動(dòng)Pull到本地版本庫(kù)以后才可以把本地的改動(dòng)push到遠(yuǎn)程版本庫(kù)。

7.Mac終端命令的使用
8.self present...跳轉(zhuǎn)出現(xiàn)警告(log打印日志警告)
跳轉(zhuǎn)方法
輸出日志警告
解決辦法:用:self showViewController:......
正確的代碼示例
9.從xib頁(yè)面跳轉(zhuǎn)到storyboard上
代碼截圖
UIStoryboard *storyTest = [UIStoryboard storyboardWithName:@"Main" bundle:nil];

ViewController *v = [storyTest instantiateViewControllerWithIdentifier:@"mainTest"];

[self presentViewController:v animated:YES completion:nil];
10.Mac升級(jí)到10.11.5后,cocoa pods更新到1.0,不能使用cocoapods的解決辦法

昨天(2016.05.17)下午App Store推薦我升級(jí)到Mac 10.11.5。然后完了,今天使用cocoapods就出錯(cuò)了,怎么配置、更行都不行。


升級(jí)后的版本

解決方案:
podfile 換格式

platform :ios, '8.0'
use_frameworks!


target 'YourApp' do
pod 'AFNetworking', '~> 2.6'end 
Podfile配置
11.解決iOS9以后不能使用http請(qǐng)求

解決辦法:(NSAllows... 是NSApp... 的子級(jí))

在info.plist中添加<key>NSAppTransportSecurity</key><dict>    <key>NSAllowsArbitraryLoads</key>    <true/></dict>

第一級(jí)(NSApp...)字典數(shù)據(jù)類型,第二級(jí)(NSAllows...)BOOL類型,設(shè)置為YES就行了

12.系統(tǒng)的json解析
代碼

// 系統(tǒng)json解析

// 網(wǎng)絡(luò)路徑
NSURL *urlPathRoot = [NSURL URLWithString:@"http://192.168.0.103:8080/jmj-web-api-x/ipad/order/orderInfo.do?condition=1&pageNo=1"];

// 請(qǐng)求
NSURLRequest *requestRoot = [NSURLRequest requestWithURL:urlPathRoot];

// 網(wǎng)絡(luò)會(huì)話
NSURLSession *sessionRoot = [NSURLSession sharedSession];

// 加載數(shù)據(jù)
NSURLSessionDataTask *dataTask = [sessionRoot dataTaskWithRequest:requestRoot completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
    
    NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);
    
}];

// 使用resume方法啟動(dòng)任務(wù)
[dataTask resume];
13.警告: Could not load the "" image referenced from a nib in the bundle with identifier "com.jmj.czy.iPad"

描述:打印如上提示

解決方案:xib上的圖片重新設(shè)置
14.多次遇到視圖上的點(diǎn)擊事件不能觸發(fā)
解決方案:在addsubview前,將要add的視圖設(shè)置為屬性,在add前初始化視圖控制器
如圖所示:初始化視圖控制器
15.三目運(yùn)算符

*N目運(yùn)算符->三目運(yùn)算符
    # int a = 5?10:2;
    # 獲得a、b中的最大數(shù)
    # 獲得a、b、c中的最大數(shù)

16.通過(guò)tag值獲得相應(yīng)的控件

UIButton *btn = (UIButton *)[self viewWithTag:currentIndex];

17.Xcode工具不能自動(dòng)換行的問(wèn)題
解決方案:如下圖
勾選Wrap lines to editor......
若還是沒(méi)自動(dòng)換行,就是工程紀(jì)錄了之前的設(shè)置。解決方法如下圖
去掉這個(gè)勾選就行了
18.iOS9網(wǎng)絡(luò)請(qǐng)求為http的配置
解決方案如下圖:

一個(gè)dic:NSAppTransportSecurity
下面一個(gè)BOOL:NSAllowsArbitraryLoads(設(shè)為YES)


在plist文件中添加一個(gè)藍(lán)色框內(nèi)的配置就行了
19. 剛才遇到一個(gè)好坑的bug(描述不清了,有點(diǎn)亂)
  癥狀:UITableView在滾動(dòng)時(shí),reloadData這個(gè)tableView報(bào)錯(cuò),而且不報(bào)具體原因。


  治病方案:poiInfoArr = nil;  // 將數(shù)組設(shè)置為空(數(shù)據(jù)源)
              [self.tabV reloadData];// 刷新表格,然后添加頭視圖
20.在block語(yǔ)句塊中,不能設(shè)置外部UIButton的title屬性,不變化。
  NSURLSessionUploadTask *uploadTask2 = [manager uploadTaskWithRequest:req fromData:nil progress:^(NSProgress * _Nonnull uploadProgress) {
    
    //        已上傳多少m
    CGFloat compFl = uploadProgress.completedUnitCount;
    compFl = compFl/1024/1024;
    
    //        總共多少m
    CGFloat totalFl = uploadProgress.totalUnitCount;
    totalFl = totalFl/1024/1024;
    
    // 進(jìn)度
    double fractionCompletedDouble = uploadProgress.fractionCompleted;
    fractionCompletedDouble = fractionCompletedDouble*100;
    
    NSString *progressStr = [NSString stringWithFormat:@"上傳進(jìn)度:%.0f%%\n%.2fM/%.2fM", fractionCompletedDouble, compFl, totalFl];
    
    AMLog(@"progress:%@", progressStr);
    
    // 調(diào)用主進(jìn)程的方法更新界面,在主進(jìn)程外更新界面常會(huì)引起錯(cuò)誤
    [self performSelectorOnMainThread:@selector(setCurrentSelectedUploadImgBtnTitle:)
                           withObject:progressStr
                        waitUntilDone:NO];
    
} completionHandler:

解決方案:

    // 用下面的方法改變屬性值。
    
    // 調(diào)用主進(jìn)程的方法更新界面,在主進(jìn)程外更新界面常會(huì)引起錯(cuò)誤
    [self performSelectorOnMainThread:@selector(setCurrentSelectedUploadImgBtnTitle:)
                           withObject:progressStr
                        waitUntilDone:NO];
21.寫圖片跟隨手勢(shì)的滑動(dòng)移動(dòng)時(shí),圖片一直不停的閃爍。
解決方法:locationInView:后面不能以這個(gè)圖片位view對(duì)象

22.百度地圖使用定位,不能進(jìn)入定位結(jié)果的代理-填坑

解決方法:將BMKLocationService這個(gè)類定義為這個(gè)類的變量,就可以了。

23.iOS 不能調(diào)起微信支付-填坑

微信的分享、登錄都是可以的,但是在調(diào)起微信支付時(shí)不行。

并且,微信支付的統(tǒng)一下單也是可以的,但就是調(diào)起微信支付失敗。

填坑方式:重新導(dǎo)入了微信SDK


屏幕快照 2016-12-16 下午2.10.22.png

24.iOS Warning: Attempt to present <UIAlertController: 0x79117e00> on

有時(shí)使用
self presentViewController:
來(lái)顯示一個(gè)視圖時(shí),卻輸出警告。有時(shí)不能呈現(xiàn)視圖。

解決方法如下:
使用

[self.presentedViewController presentViewController:

就行了

25.iOS 使用MD5加密的教程

第一步:導(dǎo)入頭文件
#import <CommonCrypto/CommonDigest.h>
第二部:把MD5加密寫成方法
#pragma mark MD5加密
- (NSString *)md5:(NSString *)str{
const char *cStr = [str UTF8String];//轉(zhuǎn)換成utf-8
unsigned char result[16];//開辟一個(gè)16字節(jié)(128位:md5加密出來(lái)就是128位/bit)的空間(一個(gè)字節(jié)=8字位=8個(gè)二進(jìn)制數(shù))
CC_MD5( cStr, (int)strlen(cStr), result);
NSMutableString *Mstr = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
for (int i=0; i<CC_MD5_DIGEST_LENGTH; i++) {
[Mstr appendFormat:@"%02X",result[i]];
}
return Mstr;
}

上圖

26.生成二維碼的方法

//生成二維碼
- (void)createCIImageWithText:(NSString*)text{
  CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
  NSString *string = text;
  NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
  //2.通過(guò)kVO設(shè)置濾鏡傳入數(shù)據(jù)
  [filter setValue:data forKey:@"inputMessage"];
  //3.生成二維碼
  CIImage *iconImage = [filter outputImage];
  UIImageView *tempImageView = [[UIImageView alloc]initWithFrame:(CGRectMake(50,50,100,100))];
  UIImage *image = [UIImage imageWithCIImage:iconImage];
  tempImageView.image= image;
  [self.view addSubview:tempImageView];
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,963評(píng)論 6 542
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,348評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,083評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,706評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,442評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,802評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,795評(píng)論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,983評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,542評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,287評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,486評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,030評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,710評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,116評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,412評(píng)論 1 294
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,224評(píng)論 3 398
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,462評(píng)論 2 378

推薦閱讀更多精彩內(nèi)容