1:属性 * 在实现自定义初始化方法的时候,一定以要遵循属性定义中所宣称的“copy”语义,因为属性定义就相当于类和待设置的属性值之间所达成的契约:
- (instancetype)initWithChat:(
NSString*)chat
{
if (
self = [
super init]) {
_chat = [chat copy];
return self;
}
2:在对象内部读取实例变量的时候采用直接访问的方式,而在设置实例变量的时候通过属性来做;
在“惰性初始化”的时候一定要通过存取方法来访问属性;在初始化方法及dealloc方法中,总是应该直接通过实例变量来读写数据;
3:“对象等同性”
综述
”==”操作符比较的是两个指针本身,而不是其所指的对象;两个对象等同性的判断应该使用”isEqual”;如果已经知道两个受测对象都属于同一个类,应该使用那种方法参考示例代码:
NSString *foo = @
"test";
NSString *bar = [
NSString stringWithFormat:@
"%@",@
"test"];
BOOL equalA = (foo == bar);
BOOL equalB = ([foo isEqual: bar]);
BOOL equalC = ([foo isEqualToString: bar]);
特定类所具有的等同性判定方法