IOS练习题

1....简述OC中内存管理机制,与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?readwrite,readonly,assign,retain,copy,nonatomic,atomic,strong,weak属性的作用?

OC中使用了一种叫做引用计数的机制来管理对象,如果对一个对象使用了alloc,[Mutable]copy,retain,那么你必须使用相应的release或者autorelease,也可以理解为自己生成的对象,自己持有,非自己生成的对象,自己也能持有,在不需要自己持有的对象时释放.非自己持有的对象无法释放.生成并持有对象<alloc,new,copy,mutableCopy等>,持有对象<retain>,释放对象<release>,废弃对象<dealloc>.readwrite(默认):可读可写,表示既有getter方法,也有setter方法.readonly:表示只有getter方法,没有setter方法.nonatomic:不考虑线程安全.atomic(默认):线程操作安全.strong(默认):ARC和MRC下retain一样,weak(ARC下):和(MRC下)assign类似,区别是当weak指向的内存释放掉后自动置为nil.防止野指针.unsafe_unretained声明一个若引用,但不会自动置为nil,可能会出现野指针

2........线程安全下的setter和getter方法

-(NSString *)value{

@synchronized (self){

return [[_value retain] autorelease];

}<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现中等难度通讯录。需求: 1、定义联系⼈类Contact。实例变量:姓名(拼⾳,⾸字⺟⼤写)、性别、电话号码、 住址、分组名称、年龄。⽅法:⾃定义初始化⽅法(姓名、电话号码)、显⽰联系⼈信息 2、在main.m中定义字典,分组管理所有联系⼈。分组名为26个⼤写的英⽂字⺟。 3、可以添加联系⼈对象,如果姓名或电话号码为空,添加失败。添加联系⼈到匹配的分 组。 4、获取某个分组名称下所有联系⼈,并且按照姓名升序排列。 5、从通讯录中根据电话号码搜索联系⼈。 6、获取所有⼥性的联系⼈,并且按照年龄的降序排列。 7、根据姓名删除某个联系⼈。 8、删除某个分组的全部联系⼈。 二.处理⼯程⽂件crayons.txt中的⽂本信息,⽂本内容是关于颜⾊的,每⾏都是⼀ 个颜⾊的信息,例如:Almond #EED9C4,前⼀个字符串是颜⾊的名称,后⼀ 个字符串是颜⾊的16进制⾊值,处理⽂本完成如下需求 1、使⽤字典管理所有的颜⾊,即字典中存储的是多个键值对,颜⾊名称为 key,16进制颜⾊值(不带#)是value。 2、取出所有的key,升序排列。 3、取出所有的value,按照排序后的key排列。 4、使⽤⼀个新的字典管理颜⾊,对颜⾊进⾏分类管理,即:“A”,“B”,“C”… 即这个字典包含多个键值对,key是26个字⺟,value是数组,数组⾥存放的是 Color对象(包含name和colorValue)。需要⾃⼰创建Color类。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值