IOS开发问题索引(三)

全系列文章索引:

IOS开发问题索引(一)

IOS开发问题索引(二)

IOS开发问题索引(三)

IOS开发问题索引(四)

IOS开发问题索引(五)

IOS开发问题索引(六)

IOS开发问题索引(七)

IOS开发问题索引(八)

IOS开发问题索引(九)


1、ios关于文件操作 获取 文件大小

ios关于文件操作 获取 文件大小

http://blog.csdn.net/xlxying/article/details/8047695

c语言 实现

#include "sys/stat.h"

- (long long) fileSizeAtPath:(NSString*) filePath{ 

    struct statst; 

    if(lstat([filePathcStringUsingEncoding:NSUTF8StringEncoding], &st) == 0){ 

        returnst.st_size; 

    } 

    return 0; 


objective-c语言实现

-(long long) fileSizeAtPath:(NSString*) filePath{ 

      NSFileManager*manager = [NSFileManager defaultManager]; 

      if ([managerfileExistsAtPath:filePath]){ 

            return [[managerattributesOfItemAtPath:filePath error:nil] fileSize]; 

      } 

      return 0; 

        如果将两种方法循环1000次,我们就可以发现两者之间巨大的性能差距了,在我的测试环境中,结果如下,c函数的耗时仅是第一种方法的5%,在此推荐c语言

        一个空的文件夹 其中获取大小为68k,应该是系统文件吧。

2、objective-c中NSString默认编码格式不是utf-8

iOS NSString转换为UTF-8编码

http://blog.csdn.net/u011872945/article/details/11771651

3、Audio Queue开发——退出程序时要关闭音频通道

        使用Audio Queue Service进行音频操作时,使用了AudioQueueNewOutput方法,来开辟一个Audio Queue输出到硬件的通道,开启后,在程序退出前,一定要用AudioQueueDispose方法释放通道(而且最好是设置为YES,即立即释放),不然程序无法再次启动该通道,除非IOS重启。

4、Audio Queue开发——Buffer缓存设置

        AudioQueue开发时,需要用到一个缓冲池队列,该队列的预读取只需要一次就行了,不需要放在play方法中,只需放在初始化方法中就行。

5、objective-c setter方法调用时机

        在保存类成员的数据时,需要使用self.***的操作来调用setter方法,才能最终保存数据。

6、对象nil状态的使用

        若一个对象需要重复使用,即alloc后会release,那么在release后,最好将其置为nil,才能利用是否等于nil来判断对象状态。

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使用

如何在项目中设置使用GDataXML解析类库

http://www.cnblogs.com/lovecode/articles/2305416.html

IOS学习笔记27—使用GDataXML解析XML文档

http://blog.csdn.net/ryantang03/article/details/7868246

【iOS开发】GDataXML使用实例

http://blog.csdn.net/qbins/article/details/12043813

9、objective-c选择器Selector

IOS SEL (@selector)原理及使用总结(一)

http://blog.csdn.net/fengsh998/article/details/8612969

【IOS】Object-C中的Selector概念

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

10、IOS中延时执行的几种方式

iOS延时执行的几种方法

http://blog.csdn.net/czcty/article/details/7730089

IOS中延时执行的几种方式的比较和汇总

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

11、Xcode工程中添加js文件,需要添加到copy Bundle Resources


12、OC中^符号使用

用^符号支持将一个代码段以参数形式添加到方法中;

13、IOS内存管理

        Autorelease只能用于属性,不能用于内部成员变量,因为内部成员变量赋值时不会有retain方法来增加引用计数。

       对于引用计数:

       Self.属性=时,会增加一次引用计数。若是self.test = [[NSString alloc] init];最终引用计数2,而不是1

       所以正确的声明方式是:

       _test =[[NSString alloc] init];

        或者self.test =[[[NSString alloc] init] autorelease];

14、UIImageView不支持多组图片载入播放

        使用UIImageView播放几组图片以实现动画效果时,同一个UIImageView对象实例无法切换载入多组图片。

       究其原因:是因为UIImageView的AnimationImage属性是一个NSArray类型,而不是NSMutableArray,故一旦完成初始化,其数组大小就已经确定了,数组长度不再可变。

15、IOSNSTimer线程无法在委托方法之外停止

        NSTimer无法在线程的委托方法之外停止。

16、在IOS4.3中添加AdSupport.framework会引起dyld ‘dyld_fatal_error

        将库引用参数设置为可选即可解决。

17、Failedto get the task for process xxx

        证书问题,project与target的调试证书都必须是开发者证书,ADHOC的证书会出现此问题。

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条件编译

        条件编译不是多高深的技术,却很实用,可以帮助我们针对不同的target编译出不同的版本。比如,希望同一份代码编译出完全版和功能受限的免费 版,以减小维护成本。

        首先要在某个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

你可能感兴趣的:(IOS开发问题索引(三))