copy:会在内存里拷贝一份对象,两个指针指向不同的内存地址。一般用来修饰NSString等有对应可变类型的对象,因为他们有可能和对应的可变类型(NSMutableString)之间进行赋值操作,为确保对象中的字符串不被修改 ,应该在设置属性是拷贝一份。而若用strong修饰,如果对象在外部被修改了,会影响到属性。 unsafe_unretained:跟 we...
因为我们使用@property定义属性之后,如果我们想修改这个属性的名称,就可以使用@synthesize关键字来对属性名称进行修改 @synthesizeuserName = $userName;
在使用Objective-C时,频繁用到属性关键字。我们应该理解每种属性的意义,并了解一些偏底层的实现,故在此对OC的属性关键字做个浅析。 基础概念:ivar、getter、setter 在C语言中,我们通常是直接操作成员变量。而在Objective-C中,使用了“属性”这一概念来封装对象中的数据,OC对象会把需要的数据保存为各种实例变量,同时...
一句话总结就是:self代表着当前方法的调用者; self 和 super 是Objective-C提供的两个保留字。 但有根本区别,self是类的隐藏的参数变量,指向当前调用方法的对象(类也是对象,类对象),另一个隐藏参数是_cmd,代表当前类方法的selector。super并不是隐藏的参数,它只是一个”编译器指示符”。 [ super init] 做了...
在Objective-C中,关键字self与c++中this是同一概念,就是类对象自身的地址,通过self可以调用自己的实例变量和方法 Super 当子类需要调用父类的方法时,会用到Super关键字. Super指向的是父类的指针,子类重写父类的方法时,调用父类的方法是一个比较好的习 惯。因为 当我们不知道父类在该方法中实现的功能时,如果不...
欢迎查看上篇:iOS面试攻略上篇:Objective-C关键字和概念 1、Object-C有多继承吗?没有的话用什么代替?cocoa 中所有的类都是NSObject 的子类 多继承在这里是用protocol 委托代理 来实现的 你不用去考虑繁琐的多继承 ,虚基类的概念. ood的多态特性 在 obj-c 中通过委托来实现. ...
默认情况下,对象的属性是不允许被外界直接访问的,如果允许对象的属性可以被外界访问,那么就需要在声明属性的时候加上一个@public关键字。 例如: @interface Person : NSObject { @public NSString *_name; int _age; float _height; } @end 访问对象的属性的方式: ...
创建Objective-C类时会生成两个文件:.h的头文件与.m的源文件。类声明关键字为@interface,类实现关键字为@implementation。 MyClass.h文件:定义了成员变量和方法。 @interface MyClass:NSObject{ //声明 NSString *result; //字符串 } -(void) setResult:(NSString *)_result; //setter方法-(NSString *) ...
下图展示 insertObject:atIndex: 实例方法的声明。声明由一个减号(-)开始,这表明这是一个实例方法。方法实际的名字(insertObject:atIndex:)是所有方法标识关键的级联,包含了冒号。冒号表明了参数的出现。如果方法没有参数,你可以省略第一个(也是唯一的)方法标识关键字后面的冒号。本例中,这个方法有两个参数。
二:一些关键字和部分理解点(以下纯粹是个人觉得OC得一些变异点和需要大致理解得一些事项) 1.NS前缀。OC得大部分类都有这个前缀。要理解缘由,可以去看OC得历史。 2.Bool 这个数据类型有点改动,在常见得语言中都是true和false,OC是YES和NO。 3.@protocol关键字,这个是申明协议类时,和@end连用,看字面意识就知道...