- 在fullName的獲取方法和設(shè)置方法中蘸嘶,使用點(diǎn)語來訪問相關(guān)屬性
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property (nonatomic,copy) NSString *firstName;
@property (nonatomic,copy) NSString *lastName;
- (NSString *)fullName;
- (void)setFullName:(NSString *)fullName;
@end
#import "Person.h"
@implementation Person
- (void)setFullName:(NSString *)fullName{
NSArray *nameArr =[fullName componentsSeparatedByString:@" "];
self.firstName = nameArr[0];
self.lastName = nameArr[1];
}
- (NSString *)fullName{
return [NSString stringWithFormat:@"%@-%@",self.firstName,self.lastName];
}
@end
- 在fullName的獲取方法和設(shè)置方法中良瞧,直接訪問屬性
#import "Person.h"
@implementation Person
- (void)setFullName:(NSString *)fullName{
NSArray *nameArr =[fullName componentsSeparatedByString:@" "];
_firstName = nameArr[0];
_lastName = nameArr[1];
}
- (NSString *)fullName{
return [NSString stringWithFormat:@"%@-%@",_firstName,_lastName];
}
@end
- 這倆種寫法區(qū)別:
- 直接訪問屬性的速度比較快。這種情況下训唱,編譯器所生成的代碼會直接訪問保存屬性的那塊內(nèi)存
- 直接訪問屬性時(shí)褥蚯,不會調(diào)用其setter方法
- 直接訪問屬性,不會觸發(fā)KVO通知
- 通過屬性來訪問有助于排查與之相關(guān)的錯(cuò)誤
讀取屬性的時(shí)候采用直接訪問的形式
設(shè)置屬性的時(shí)候通過屬性處理
參考
Effective+Objective-C 2.0 編寫高質(zhì)量iOS與OS X代碼的52個(gè)有效方法