OC基础
文章平均质量分 64
anywhereIOS
这个作者很懒,什么都没留下…
展开
-
block常见的几个问题
block的理解block是一个指向结构体的指针,编译器会将block的内部代码生成对应的函数一,block与变量1)可以修改全部变量和静态变量2)不可以修改局部变量,如果想要修改使用__block注意:block之所以能够修改全局变量和局部变量与使用__block修饰的局部变量,是因为把指向变量的指针copy到block结构体内部.而布局变量是copy的变量值到block原创 2016-04-11 18:59:18 · 1568 阅读 · 0 评论 -
深拷贝与浅拷贝
深拷贝是对象拷贝,拷贝出一个新的对象.浅拷贝是指针拷贝,拷贝出一个指针指向原来的对象.在非ARC项目中,原来对象的引用计数加一.第一,字符串的拷贝1>不可变字符串调用copy方法,不会产生一个新的对象,是指针的拷贝.2>不可变字符串调用mutableCopy方法,会产生一个新的对象,是对象的copy例如: //1.不可变字符串 NSString *str =原创 2016-04-27 09:21:13 · 365 阅读 · 0 评论 -
分类与扩展
一,分类分类不可以添加属性,在编译阶段不会报错,但是在运行的时候会报错,崩溃,原因是找不到setter方法如果想要给分类添加属性,应该使用runtime,例如为分类添加属性:@property (nonatomic,copy) NSString *userId;在.m文件中实现下面这两个方法-(void)setUserId:(NSString *)userId{原创 2016-04-22 23:18:10 · 382 阅读 · 0 评论 -
实例变量与属性:私有变量与私有方法
一,实例变量定义在.h文件中{ @public //公开的, 在任何地方通过实例对象都可以访问 int _age; @private //私有的,表示只能在当前类中使用 NSString *_name; @protected //受保护类型,表示只能在当前类和子类中访问 float _weight;原创 2016-04-22 23:24:15 · 1153 阅读 · 0 评论 -
字符串:可变字符串与不可变字符串
一 NSString是不可变字符串,所有它所有产生其他字符串方法都是生成一个新的字符串,而不会改变原来字符串第一种:字面量,它是常量字符串,存储常量区NSString *str = @"abc";第二种是通过 快捷的构造方法NSString stringWithFormat:第三种方式 初始化方法[NSString alloc] initWithFormat:二,字原创 2016-04-23 00:01:35 · 3241 阅读 · 0 评论