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

全系列文章索引:

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

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

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

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

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

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

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

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

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


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í)行的幾種方式的比較和匯總

http://bluevt.org/?p=128

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

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

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

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