码迷,mamicode.com
首页 > 移动开发 > 详细

iOS面试题整理

时间:2015-11-26 17:04:47      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

1.@property 后面可以有哪些修饰符?

 

1.读写性: 
readwrite:可读可写,系统为我们创建这个属性的setter和getter方法
readonly:只读,系统只为我们创建一个setter方法
2.setter相关:
assign:表示直接复制,用于基本数据类型(NSInteger和CGFloat)和C数据类型(int, float, double, char等)另外还有id类型这个修饰符不会牵涉到内存管理,不可用于对象类型,否则会导致内存泄露或者错误
retain:针对对象类型尽心内存管理,不可对基本数据类型使用,当用于对象类型时,setter方法会先将就得对象属性release掉,在对新的对象进行一次赋值,并进行一次retain操作.
copy:主要用于NSString类型,表示复制内容
系统默认属性是assign,retain是指针的复制,copy是内容的复制
3.原子性
atomic:表示是线程安全的
nonatomic:表示是非线程安全的,使用此属性性能会提高一些
4.getter和setter
@property (getter = isOpen) BOOL open;
5.ARC中
strong:类似retain
weak:类似assign

@synthesize propertyName
编译器还会做一件事情,在类成员变量中查找一个名为_propertyName的成员变量,如果没有,再继续查找名为propertyName的成员变量,如果这两个都没有,编译器会自动为我们生成一个私有的名为_propertyName的成员变量。注意,系统自动创建的都是私有的。
但是在Xcode 4.5之后可以不用写

 

  

 

iOS面试题整理

标签:

原文地址:http://www.cnblogs.com/spaceID/p/4998199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!