iOS开发过程中常见问题

本文介绍了iOS开发中的一些实用技巧,包括SQL语句操作、内存警告处理、预编译头文件使用、UICollectionView布局特性、文件交互方式、应用生命周期管理、国际化问题解决、UIView尺寸调整、全局变量初始化、对象类名获取及创建、类型判断方法、代理模式判断、SEL机制、消息发送优化、编译配置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL语句:

根据id来排序,删除表中的前3条数据
DELETE FROM sync WHERE id IN ( SELECT id FROM sync ORDER BY id LIMIT 3) 

 

 

1. viewDidUnload一般情况下只在memory warning的时候才被调用

2..PCH预编译头文件 在Xcode项目中是prefix.pch文件,在Supporting Files Group中使用预编译头文件是为了“提高编译速度” 把一个工程中较为稳定的、不经常修改的代码放在一个文件中,每次编译时如果预编译中的代码没有修改,那么就不再编译这部分代码;

 

3.PSCollectionView是一个特殊的tableView,布局称为瀑布流式布局,主要特征是错落有致,定宽而不定高,巧妙地利用了视觉层级,实现的任意流动又缓解了视觉疲劳。

4.NSString/NSArray/NSDictionary/NDData都可以直接与本地文件file交互,NSImage不可以,中间需要NSData转化一下。

5. 应用启动的时候调用

didFinishLaunchingWithOptions

applicationDidBecomeActive

    应用从前台进入后台时,会调用两个方法:

applicationWillResignActive

applicationDidEnterBackground

   应用从后台进入前台,会调用两个方法:

applicationWillEnterForeground

applicationDidBecomeActive

6.iphone开发国际化问题

http://blog.youkuaiyun.com/tangren03/article/details/8081032

7.sizeToFit  调用这个方法,会自动调节当前的view大小,例如在UIScrollView中嵌套UIWebView时,调用UIWebView的这个方法,就会自动把UIWebView的frame变大,不再滚动。

8.全局变量BOOL 的默认初始值是NO。局部变量需要初始化才可以使用,如果强制使用的话默认是YES。

 9.根据对象获取类名: [NSString stringWithUTF8String:object_getClassName(a)]; 获取对象的类名

 NSString *class_name = [NSStringstringWithUTF8String:object_getClassName(obj)];

10.通过类名来创建对象

Class testClass=NSClassFromString(@”testClass”);

id object=[[testClass alloc] init];

 

11.IsKindOfClass与IsMemberOfClass的区别:

IsKindOfClass用于判断是否是指定类的一个实例或者继承至指定类的子类的实例。

 

IsMemberOfClass用于判断是否是指定类的一个实例。只有在极少数特殊情况才起作用,不建议使用。
12.IsProxy若接受者继承至NSObject返回NO,其它都返回YES。

 

13.SEL可以看成是一个函数指针,通过函数名找到相应的方法,在编译时通过@selector()创建。

 

14.-(id)performSelector:(SEL) aSelector ;
-(id)performSelector:(SEL) aSelector withObject:(id) anObject ;
-(id)performSelector:(SEL) aSelector withObject:(id) anObject withObject:(id) anotherObjec ;
跟直接通过方法名调用类似,但通过消息发送通知的机制,效率更高,比满查找相应的类,找到对应的函数接口,再执行相应的代码。可以在类内使用,也可以在类的外部使用。
15.id与void *的区别:id指向一个未知类型的objective c对象,void *指向一个未知类型的对象,比id使用范围更广。
16.在我的代码中使用这段代码来屏蔽掉NSLog
//#define NSLog //NSLog

#define NSLog NSLog(@"#%s##%d#",strrchr(__FILE__,'/'),__LINE__);NSLog

#ifdef DEBUG

#define MYLog(f, ...) NSLog(f, ## __VA_ARGS__)

//#define DDLog(f, ...)

#else

//#define DDLog(f, ...) NSLog(f, ## __VA_ARGS__)

#define MYLog(f, ...)

#endif

 

17.

Architectures 项目里想要Xcode编译的目标设备

Build Active Architecture Only 属性设置为yes,为了debug时编译速度更快,只编译对应的版本 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值