全系列文章索引:
1、ios關(guān)于文件操作 獲取 文件大小
ios關(guān)于文件操作 獲取 文件大小
http://blog.csdn.net/xlxying/article/details/8047695
c語言 實(shí)現(xiàn)
#include "sys/stat.h"
- (long long) fileSizeAtPath:(NSString*) filePath{?
??? struct statst;?
??? if(lstat([filePathcStringUsingEncoding:NSUTF8StringEncoding], &st) == 0){?
??????? returnst.st_size;?
??? }?
??? return 0;?
}?
objective-c語言實(shí)現(xiàn)
-(long long) fileSizeAtPath:(NSString*) filePath{?
? ????NSFileManager*manager = [NSFileManager defaultManager];?
? ????if ([managerfileExistsAtPath:filePath]){?
??? ????????return [[managerattributesOfItemAtPath:filePath error:nil] fileSize];?
? ????}?
? ????return 0;?
}?
????????如果將兩種方法循環(huán)1000次,我們就可以發(fā)現(xiàn)兩者之間巨大的性能差距了,在我的測試環(huán)境中,結(jié)果如下,c函數(shù)的耗時僅是第一種方法的5%,在此推薦c語言
????????一個空的文件夾 其中獲取大小為68k,應(yīng)該是系統(tǒng)文件吧。
2、objective-c中NSString默認(rèn)編碼格式不是utf-8
iOS NSString轉(zhuǎn)換為UTF-8編碼
http://blog.csdn.net/u011872945/article/details/11771651
3、Audio Queue開發(fā)——退出程序時要關(guān)閉音頻通道
????????使用Audio Queue Service進(jìn)行音頻操作時,使用了AudioQueueNewOutput方法,來開辟一個Audio Queue輸出到硬件的通道,開啟后,在程序退出前,一定要用AudioQueueDispose方法釋放通道(而且最好是設(shè)置為YES,即立即釋放),不然程序無法再次啟動該通道,除非IOS重啟。
4、Audio Queue開發(fā)——Buffer緩存設(shè)置
????????AudioQueue開發(fā)時,需要用到一個緩沖池隊(duì)列,該隊(duì)列的預(yù)讀取只需要一次就行了,不需要放在play方法中,只需放在初始化方法中就行。
5、objective-c setter方法調(diào)用時機(jī)
????????在保存類成員的數(shù)據(jù)時,需要使用self.***的操作來調(diào)用setter方法,才能最終保存數(shù)據(jù)。
6、對象nil狀態(tài)的使用
????????若一個對象需要重復(fù)使用,即alloc后會release,那么在release后,最好將其置為nil,才能利用是否等于nil來判斷對象狀態(tài)。
7、IOS多線程——GCD使用
使用GCD
http://blog.devtang.com/blog/2012/02/22/use-gcd/
iOS多線程編程之GrandCentral Dispatch(GCD)介紹和使用
http://blog.csdn.net/totogo2010/article/details/8016129
GCD的使用方法
http://beauty-soft.net/blog/ceiba/object-c/20130513/639.html
GCD之dispatchqueue
http://www.cnblogs.com/scorpiozj/archive/2011/07/25/2116459.html
GCD介紹(一):基本概念和Dispatch Queue
http://www.dreamingwish.com/dream-2012/gcd介紹(一)-基本概念和dispatch-queue.html
8、IOS——GDataXML使用
如何在項(xiàng)目中設(shè)置使用GDataXML解析類庫
http://www.cnblogs.com/lovecode/articles/2305416.html
IOS學(xué)習(xí)筆記27—使用GDataXML解析XML文檔
http://blog.csdn.net/ryantang03/article/details/7868246
【iOS開發(fā)】GDataXML使用實(shí)例
http://blog.csdn.net/qbins/article/details/12043813
9、objective-c選擇器Selector
IOS SEL (@selector)原理及使用總結(jié)(一)
http://blog.csdn.net/fengsh998/article/details/8612969
【IOS】Object-C中的Selector概念
http://blog.sina.com.cn/s/blog_735065f90100yopd.html
10、IOS中延時執(zhí)行的幾種方式
iOS延時執(zhí)行的幾種方法
http://blog.csdn.net/czcty/article/details/7730089
IOS中延時執(zhí)行的幾種方式的比較和匯總
11、Xcode工程中添加js文件,需要添加到copy Bundle Resources
12、OC中^符號使用
用^符號支持將一個代碼段以參數(shù)形式添加到方法中;
13、IOS內(nèi)存管理
????????Autorelease只能用于屬性,不能用于內(nèi)部成員變量,因?yàn)閮?nèi)部成員變量賦值時不會有retain方法來增加引用計(jì)數(shù)。
?????? 對于引用計(jì)數(shù):
?????? Self.屬性=時,會增加一次引用計(jì)數(shù)。若是self.test = [[NSString alloc] init];最終引用計(jì)數(shù)是2,而不是1
?????? 所以正確的聲明方式是:
?????? _test =[[NSString alloc] init];
????????或者self.test =[[[NSString alloc] init] autorelease];
14、UIImageView不支持多組圖片載入播放
????????使用UIImageView播放幾組圖片以實(shí)現(xiàn)動畫效果時,同一個UIImageView對象實(shí)例無法切換載入多組圖片。
?????? 究其原因:是因?yàn)閁IImageView的AnimationImage屬性是一個NSArray類型,而不是NSMutableArray,故一旦完成初始化,其數(shù)組大小就已經(jīng)確定了,數(shù)組長度不再可變。
15、IOSNSTimer線程無法在委托方法之外停止
????????NSTimer無法在線程的委托方法之外停止。
16、在IOS4.3中添加AdSupport.framework會引起dyld ‘dyld_fatal_error
????????將庫引用參數(shù)設(shè)置為可選即可解決。
17、Failedto get the task for process xxx
????????證書問題,project與target的調(diào)試證書都必須是開發(fā)者證書,ADHOC的證書會出現(xiàn)此問題。
18、IOSNSInvocation使用
NSInvocation的使用
http://www.cnblogs.com/pengyingh/articles/2359199.html
iOS通知中心NSNotificationCenter & NSNotification
http://blog.csdn.net/crayondeng/article/details/9372079
19、UIPopoverController使用
UIPopoverController的使用
http://www.cnblogs.com/wengzilin/archive/2012/03/13/2393675.html
UIPopoverController的使用心得
http://blog.csdn.net/smking/article/details/7683363
20、Xcode條件編譯
????????條件編譯不是多高深的技術(shù),卻很實(shí)用,可以幫助我們針對不同的target編譯出不同的版本。比如,希望同一份代碼編譯出完全版和功能受限的免費(fèi) 版,以減小維護(hù)成本。
????????首先要在某個project或者target上get info。在Build頁中,找到GCC 4.2 - Preprocessing下面的Preprocessor Macros,雙擊,在彈出來的對話框中增加一個值,例如FREE_VERSION。確定。
????????然后在代碼中加入如下語句:
#if !defined(FREE_VERSION)
...//do for full version
#else
...//do for free version
#end