全系列文章索引:
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)于多線程編程
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多線程編程指南(四)線程同步
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)
