IOS開發(fā)問題索引(四)

全系列文章索引:

IOS開發(fā)問題索引(一)

IOS開發(fā)問題索引(二)

IOS開發(fā)問題索引(三)

IOS開發(fā)問題索引(四)

IOS開發(fā)問題索引(五)

IOS開發(fā)問題索引(六)

IOS開發(fā)問題索引(七)

IOS開發(fā)問題索引(八)

IOS開發(fā)問題索引(九)


1 Xcode利用宏區(qū)分模擬器與真機(jī)

Xcode利用宏定義區(qū)分iphone模擬器和真機(jī)

http://blog.csdn.net/zypsg/article/details/5524623

#if TARGET_IPHONE_SIMULATOR

??label?.?text?=?@"iphoneSimulator"?;

#elif TARGET_OS_IPHONE

label?.?text?=?@"iphoneDevice"?;

#endif

2 IOS設(shè)備類型判斷

iOS判斷設(shè)備類型

http://blog.sina.com.cn/s/blog_9c3c519b01013gdx.html

如何判斷ios設(shè)備的類型(iphone,ipod,ipad)

http://blog.csdn.net/tangaowen/article/details/6525992


3 IOS中多版本,多設(shè)備類型支持注意事項(xiàng)

IOS中多版本,多設(shè)備類型支持注意事項(xiàng)

http://www.cnblogs.com/smileEvday/archive/2013/04/10/SDKCompatility.html


4 ”Avalid provisioning profile for this executable was not found“ 問題

????????”A valid provisioning profile for this executable was not found“ 問題google一下有很多答案,我在這里總結(jié)一下我的經(jīng)驗(yàn)。從描述上可以看到說:對(duì)于可執(zhí)行provisioning profile 沒有被找到。所以網(wǎng)上有很多答案是說你provisioning profile沒有被找到,需要重新導(dǎo)入之類的。

????????但是我碰到的原因是我在Project中將Code Signing Identity中將其設(shè)置成了iPhone Develop,但是在Target中的Code Signing Identity并沒有自動(dòng)切換過來,我發(fā)現(xiàn)在Target中的Code Signing Identity還是我之前的設(shè)的iPhone Distribution,所以看到這里就知道了,iPhone Distribution 的provisioning profile肯定是不能運(yùn)行的,所以把Target中的Code Signing Identity也設(shè)置成iPhone Develop就ok了,這樣一切都說的通了,唯一不合理的就是在Project切換Code Signing Identity并編譯,但xCode沒有自動(dòng)將編譯后的Target設(shè)置成和Project中的一致。


5 IOS使用模態(tài)框彈出子視圖后,子視圖大小設(shè)置

????????IOS SDK內(nèi)建支持模態(tài)窗口式彈出方式(利用presentModalViewController方法),原理是將子視圖包含在一個(gè)模態(tài)視圖中,但是不足之處在于此模態(tài)視圖大小是固定的,為540*620,若子視圖大小小于這個(gè),周圍就會(huì)出現(xiàn)灰色邊緣。

????????要解決此問題,在執(zhí)行完presentModalViewController方法之后,再次手動(dòng)設(shè)置模態(tài)窗口大小:subVC.view.superView.frame

6 UIImageView加圓角

圖片要加圓角的做法在 iphone 3.0 變得很容易

imageThumbnail.image=[UIImageimageWithContentsOfFile:strPath];

imageThumbnail.layer.masksToBounds=YES;

imageThumbnail.layer.cornerRadius=10.0;

imageThumbnail.layer.borderWidth=1.0;

//邊框陰影寬度

imageThumbnail.layer.borderColor=[[UIColorgrayColor]?CGColor];

透過以上的程式碼就可以達(dá)到目的, 真是方便很多Orz. 請(qǐng)記得要import?


7 dequeueResuableCellWithIdentifier原理

dequeueReusableCellWithIdentifier原理?

http://ronglei0324.blog.163.com/blog/static/67633223201312631558212/


8 auto layout on ios Versions prior to 6.0

Auto Layout on iOS Versions prior to 6.0

http://blog.csdn.net/topbar/article/details/12345511

9 Xcode模擬器simulators7,6,5下載地址及安裝

1.下載鏈接

iOS7.0模擬器:

http://devimages.apple.com/downloads/xcode/simulators/ios_7_0_simulator.dmg

iOS6.1模擬器:

http://devimages.apple.com/downloads/xcode/simulators/ios_6_1_simulator.dmg

iOS6.0模擬器:

http://devimages.apple.com/downloads/xcode/simulators/iphone_6_0_iphonesimulatorsdk6_0.dmg

iOS5.1模擬器:

http://devimages.apple.com/downloads/xcode/simulators/iphone_5.1_iphonesimulatorsdk5_1.dmg

iOS5.0模擬器:

http://devimages.apple.com/downloads/xcode/simulators/ios_50_simulator-1.dmg

iOS 7 doc set?

http://devimages.apple.com/docsets/20130918/091-9917-A.dmg?

xcode 5 doc set?

http://devimages.apple.com/docsets/20130918/091-9915-A.dmg??

2. iOS模擬器的安裝

2.1常規(guī)安裝

Xcode

????????默認(rèn)支持的iOS模擬器的在線安裝,啟動(dòng)Xcode5.1后打開菜單Xcode->Preferences...再點(diǎn)擊Downloads就可以看到Xcode默認(rèn)支持的iOS各版本模擬器,如果還沒有安裝,只需要點(diǎn)擊后面的下載箭頭標(biāo)識(shí),Xcode就會(huì)自動(dòng)下載和安裝相應(yīng)的組件,因?yàn)樾枰螺d和安裝,可能需要等待較長(zhǎng)時(shí)間才能完成下載和安裝。另外,下載的臨時(shí)文件存放在/Users//Library/Caches/com.apple.dt.Xcode/Downloads目錄中。

2.2第三方下載器下載后安裝但是往往用xcode自動(dòng)下載模擬器會(huì)非常慢 或者經(jīng)過很長(zhǎng)一段時(shí)間后提示Failed to mount file 什么的這時(shí)候 就可以找到下載鏈接用下載器進(jìn)行下載,進(jìn)入目錄

/Users//Library/Caches/com.apple.dt.Xcode/Downloads? 將5dba03a4b33ac2c0d7a72e94475011c25eb06a73.dvtdownloadableindex 類似文件重命名成.plist后綴文件(com.apple.dt.Xcode 要右鍵顯示包內(nèi)容進(jìn)入,不要雙擊打開)找到downloadables, 某個(gè)item中 尋找 dmg? source下載地址可以找到simulator dmg明顯字樣的鏈接 下載即可(文章開頭的鏈接就是取自plist文件)

2.3下載后的dmg安裝.這里主要以iOS7.0模擬器的離線安裝為例進(jìn)行說明,其他版本以此類推:

????????下載ios_7_0_simulator.dmg后打開dmg文件,可以看到安裝包iPhoneSimulatorSDK7_0.pkg,使用安裝器安裝此安裝包,默認(rèn)會(huì)安裝在所選分區(qū)的/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk目錄下,完全退出Xcode后將剛才安裝的iPhoneSimulator7.0.sdk整個(gè)目錄復(fù)制或移動(dòng)到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs目錄下即可,(Xcode.app右鍵可以"顯示包內(nèi)容“)重新啟動(dòng)Xcode一般就可以使用相應(yīng)版本的模擬器進(jìn)行開發(fā)和調(diào)試了。

????????離線安裝還有一個(gè)簡(jiǎn)單的辦法就是將以前安裝過的舊版本的Xcode如Xcode5.0.2下面已經(jīng)安裝好了的iOS模擬器直接復(fù)制過來使用,目錄位置都一樣,都是在Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs里面。這樣就不用再下載離線安裝包了。

10 iOS:忘記密碼或輸入錯(cuò)誤密碼后設(shè)備停用

????????當(dāng)您在設(shè)置密碼確保安全使用iPhone、iPad或iPod touch后輸入了錯(cuò)誤的密碼,可能會(huì)看到設(shè)備“已停用”的消息。了解如果您已忘記或不記得自己的密碼或者設(shè)備顯示“已停用”的消息時(shí)應(yīng)如何處理。

????????如果您輸入錯(cuò)誤密碼六次或以上,將看到以下任一消息:

§ iPhone 已停用

§ iPad 已停用

§ iPod touch 已停用

????????如果您之前將設(shè)備與 iTunes 同步過,您或許能夠通過恢復(fù)設(shè)備來重設(shè)密碼:

? ? 1. 將設(shè)備連接到通常與之同步的電腦,然后打開 iTunes。注:如果 iTunes 提示您輸入密碼,請(qǐng)嘗試已經(jīng)與其同步的另一臺(tái)電腦。否則,請(qǐng)前往下文“如果您從未將設(shè)備與 iTunes 同步,或沒有權(quán)限訪問電腦”部分。

? ? 2. 如果設(shè)備仍處于停用狀態(tài),或者 iTunes 沒有自動(dòng)同步您的設(shè)備,請(qǐng)將設(shè)備與 iTunes 同步。

? ? 3. 備份和同步完成后,請(qǐng)恢復(fù)您的設(shè)備。

? ? 4. 當(dāng) iOS 設(shè)置助理要求設(shè)置設(shè)備時(shí),請(qǐng)選取“從iTunes 備份恢復(fù)”。

? ? 5. 在 iTunes 中選擇您的設(shè)備,然后選取最近的設(shè)備備份。

????????如果您從未將設(shè)備與iTunes同步,或沒有權(quán)限訪問電腦,或者如果您看到以下警告之一,則需要抹掉設(shè)備上的數(shù)據(jù):

????????“iTunes 未能連接到 [設(shè)備],因?yàn)樗驯皇褂每诹铈i定了。您必須在 [設(shè)備] 上輸入口令,然后才能與 iTunes 配合使用它?!?/p>

????????“您尚未選擇讓 [設(shè)備] 信任此電腦”

????????如果您已啟用“查找我的 iPhone”,則可以使用“遠(yuǎn)程擦除”來抹掉設(shè)備上的內(nèi)容。如果您已使用?iCloud 來備份,或許能在抹掉設(shè)備內(nèi)容后恢復(fù)最新的備份并重設(shè)密碼。

????????或者,將設(shè)備置于恢復(fù)模式并將其恢復(fù)以抹掉設(shè)備上的內(nèi)容:

????1. 斷開 USB 線纜與設(shè)備的連接,但保持線纜的另一端與電腦的 USB 端口相連。

????2. 關(guān)閉設(shè)備:按住睡眠/喚醒按鈕數(shù)秒,直到出現(xiàn)紅色滑塊,然后滑動(dòng)該滑塊。等待設(shè)備關(guān)閉。

????3. 按住主屏幕按鈕,同時(shí)將 USB 線纜重新連接到設(shè)備。設(shè)備應(yīng)會(huì)打開。

????4. 繼續(xù)按住主屏幕按鈕,直到出現(xiàn)“連接iTunes”屏幕。

????5.? iTunes 將提醒您,其檢測(cè)到一個(gè)處于恢復(fù)模式的設(shè)備。點(diǎn)按“好”,然后恢復(fù)設(shè)備。

其他信息

????了解有關(guān)設(shè)置和使用密碼的信息。

????您可以將設(shè)備配置為在連續(xù)十次輸入錯(cuò)誤密碼后自動(dòng)抹掉。此設(shè)置在默認(rèn)情況下未啟用??赏ㄟ^輕按“設(shè)置”>“密碼鎖定”來打開此設(shè)置。

11 block避免循環(huán)引用

????????由于我們很多行為會(huì)導(dǎo)致Block的copy,而當(dāng)Block被copy時(shí),會(huì)對(duì)block中用到的對(duì)象產(chǎn)生強(qiáng)引用(ARC下)或者引用計(jì)數(shù)加一(non-ARC下)。

如果遇到這種情況:

@property(nonatomic, readwrite, copy) completionBlock? completionBlock;

//========================================

self.completionBlock = ^ {

??????? if? (self.success) {

? self.success(self.responseData);

??????? }

??? }

};

????對(duì)象有一個(gè)Block屬性,然而這個(gè)Block屬性中又引用了對(duì)象的其他成員變量,那么就會(huì)對(duì)這個(gè)變量本身產(chǎn)生強(qiáng)應(yīng)用,那么變量本身和他自己的Block屬性就形成了循環(huán)引用。在ARC下需要修改成這樣:

@property(nonatomic, readwrite, copy) completionBlock? completionBlock;

//========================================

__weak typeof(self) weakSelf = self;

self.completionBlock = ^ {

??? if? (weakSelf.success) {

? weakSelf.success(weakSelf.responseData);

??? }

};

????????也就是生成一個(gè)對(duì)自身對(duì)象的弱引用,如果是倒霉催的項(xiàng)目還需要支持iOS4.3,就用__unsafe_unretained替代__weak。如果是non-ARC環(huán)境下就將__weak替換為__block即可。non-ARC情況下,__block變量的含義是在Block中引入一個(gè)新的結(jié)構(gòu)體成員變量指向這個(gè)__block變量,那么__block typeof(self) weakSelf = self;就表示Block別再對(duì)self對(duì)象retain啦,這就打破了循環(huán)引用。

Block的引用循環(huán)問題(ARC& non-ARC)

http://www.hrchen.com/2013/06/retain-cycle-in-block/

a-look-inside-blocks-episode-1

http://www.galloway.me.uk/2012/10/a-look-inside-blocks-episode-1/

a-look-inside-blocks-episode-2

http://www.galloway.me.uk/2012/10/a-look-inside-blocks-episode-2/

a-look-inside-blocks-episode-3

http://www.galloway.me.uk/2013/05/a-look-inside-blocks-episode-3-block-copy/

12 runloop

(good)Objective-C之run loop詳解

http://blog.csdn.net/wzzvictory/article/details/9237973

(good)iOS多線程編程指南(三)Run Loop

http://www.dreamingwish.com/dream-2012/ios-multithread-program-runloop-the.html

13 iOS多線程開發(fā)指南

iOS多線程開發(fā)指南

http://www.dreamingwish.com/dream-category/toturial/ios-mulit-thread-program-guide

iOS多線程編程指南(一)關(guān)于多線程編程

http://www.dreamingwish.com/dream-2012/ios-multi-threaded-programming-a-multi-threaded-programming.html

iOS多線程編程指南(二)線程管理

http://www.dreamingwish.com/dream-2012/ios-multi-threaded-programming-the-thread-management.html

iOS多線程編程指南(三)RunLoop

http://www.dreamingwish.com/dream-2012/ios-multithread-program-runloop-the.html

iOS多線程編程指南(四)線程同步

http://www.dreamingwish.com/dream-2012/the-ios-multithreaded-programming-guide-4-thread-synchronization.html

14 GCD(Grand Central Dispatch)教程

發(fā)布者:Seven's?-?2012/03/03?-?分類:夢(mèng)印象

????????Grand Central Dispatch或者GCD,是一套低層API,提供了一種新的方法來進(jìn)行并發(fā)程序編寫。從基本功能上講,GCD有點(diǎn)像NSOperationQueue,他們都允許程序?qū)⑷蝿?wù)切分為多個(gè)單一任務(wù)然后提交至工作隊(duì)列來并發(fā)地或者串行地執(zhí)行。GCD比之NSOpertionQueue更底層更高效,并且它不是Cocoa框架的一部分。

入門教程:

GCD介紹(一): 基本概念和Dispatch Queue

GCD介紹(二): 多核心的性能

GCD介紹(三): Dispatch Sources

GCD介紹(四): 完結(jié)

進(jìn)階:

GCD實(shí)戰(zhàn)一:使用串行隊(duì)列實(shí)現(xiàn)簡(jiǎn)單的預(yù)加載

GCD實(shí)戰(zhàn)二:IO資源競(jìng)爭(zhēng)

15 Block教程系列

發(fā)布者:Seven's?-?2013/04/22?-?分類:夢(mèng)印象

ios開發(fā)block的使用指南,以及深入理解block的內(nèi)存管理,也適用于osx開發(fā)。

討論范圍:block的使用,內(nèi)存管理,內(nèi)部實(shí)現(xiàn)。

不包含的內(nèi)容:gc arc下的block內(nèi)存,block在c++中的使用。

Block介紹(一)基礎(chǔ)

Block介紹(二)內(nèi)存管理與其他特性

block介紹(三)揭開神秘面紗(上)

block介紹(四)揭開神秘面紗(下)

16 iOS開發(fā) git github 初學(xué)+進(jìn)階

iOS開發(fā)git github初學(xué)+進(jìn)階

http://guxiaojje.blog.163.com/blog/static/140942291201272110343064/

17 iPhone應(yīng)用程序的啟動(dòng)過程

iPhone應(yīng)用程序的啟動(dòng)過程

http://mobile.51cto.com/iphone-284474.htm

18 使用靜態(tài)IP無法打開部分網(wǎng)頁的解決辦法

????????使用靜態(tài)IP無法打開部分網(wǎng)頁的解決辦法,手動(dòng)設(shè)置DNS,并且備用DNS設(shè)置為114.114.114.114

19 js枚舉類型

js枚舉類型定義:

????方法1:

var DataType = {String1:value1,String2:value2 }

?????方法2:

var DataType = { } ;

DataType.String1=value1;

DataType.String2=value2;

????遍歷枚舉類型:

for(var i in DataType ){

DataType[i];?//獲取value

i;//下標(biāo)

?}

20 當(dāng)前無線網(wǎng)絡(luò)不能勾選“自動(dòng)發(fā)現(xiàn)代理”,不然無法Safari無法聯(lián)網(wǎng)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 用到的組件 1、通過CocoaPods安裝 2、第三方類庫安裝 3、第三方服務(wù) 友盟社會(huì)化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 15,195評(píng)論 1 180
  • 偶然發(fā)現(xiàn),用過一些,分享給大家 { "XcodeChaJian": [ { "Dname":"...
    MonkeyHan閱讀 7,011評(píng)論 0 4
  • 又是一年開學(xué)季 今年與往年相比 另有感慨 可能我還沉浸在高中暑假補(bǔ)課的悲傷里 不覺感到驚訝 這么晚了怎么還沒開學(xué)呢...
    沛庫閱讀 482評(píng)論 0 1
  • 逼仄的天空 潑了墨似的暗 至少從籠子里看 是這樣 被剪去華麗羽翼的鳥 扯著嘶啞的喉嚨歌唱 死去吧 毀滅吧 為什么活...
    瀲兮閱讀 259評(píng)論 0 1
  • 我在原地等待 對(duì)面的爬山虎不必結(jié)出紅果子 也可以讓一面冰冷的墻,釋放出熱情 正如一群楓葉,蔓延后點(diǎn)燃群山 我在原地...
    一團(tuán)菌閱讀 269評(píng)論 3 12

友情鏈接更多精彩內(nèi)容