关于iOS的一些问题

来源:互联网 发布:淘宝买家旺旺提取工具 编辑:程序博客网 时间:2024/05/22 14:29

1.常见的object-c的数据类型有那些, 和C的基本数据类型有什么区别?如:NSInteger和int

object-c的数据类型有NSString,NSNumber,NSArray,NSMutableArray,NSData等等,这些都是class,创建后便是对象,而C语言的基本数据类型int,只是一定字节的内存空间,用于存放数值;NSInteger是基本数据类型,并不是NSNumber的子类,当然也不是NSObject的子类。NSInteger是基本数据类型Int或者Long的别名(NSInteger的定义typedef long NSInteger),它的区别在于,NSInteger会根据系统是32位还是64位来决定是本身是int还是Long。


2.id 声明的对象有什么特性?


Id 声明的对象具有运行时的特性,即可以指向任意类型的objcetive-c的对象;


 所谓运行时特性,是指,在程序运行时在确定对象类型。

 

3.Objective-C如何对内存管理的,说说你的看法和解决方法?

 Objective-C的内存管理主要有三种方式ARC(自动内存计数)、手动内存计数、内存池。

 cell复用,加载webimage也属于内存方面问题。


4.内存管理的几条原则时什么?按照默认法则.那些关键字生成的对象

需要手动释放?在和property结合的时候怎样有效的避免内存泄露?

谁申请,谁释放

 

内存管理主要要避免“过早释放”和“内存泄漏”,对于“过早释放”需要注意@property设置特性时,一定要用对特性关键字,对于“内存泄漏”,一定要申请了要负责释放,要细心。

 

关键字alloc 或new 生成的对象需要手动释放;


设置正确的property属性,对于retain需要在合适的地方释放



5.浅拷贝,深拷贝区别


如果一个对象当中他们很多属性


浅拷贝:

所谓浅拷贝是指  仅对对象本身拷贝,而其他属性不拷贝,还引用之前的属性。


深拷贝:

所谓深拷贝是指  对象本身拷贝,同时属性也拷贝,(重新开辟空间)。拷贝完之后和原对象任何没有关系。









0 0