OC高效率52之使用「class-continuation分類」隱藏實現細節

#import <Foundation/Foundation.h>

@interface EOCPerson : NSObject
@property (nonatomic , copy , readonly) NSString *firstName;
@property (nonatomic , copy , readonly) NSString *lastName;
-(id)initWithFirstName:(NSString *)firstName lastName:(NSString *)lastName;
@end


//continuation n. 繼續;續集;延長;附加部分
/**
 *  class-continuation  
 *  惟一能聲明實例變量的分類
 *  此分類沒有特定的實現文件,其中的方法都應該定義在類的主實現文件裏
 *  處理與C++混編時,隱藏C++文件
 *  擴充屬性,封裝在類中的數據就由實例自己來控制,而外部代碼則沒法修改其值
 *  視爲私有的協議也應該寫在class-continuation類裏
 */
#import "EOCPerson.h"
@interface EOCPerson ()//<EOCSecretDelegate>
{
    NSString *_anInstanceVariable;
}
@property (nonatomic , copy , readwrite)NSString *firstName;
@property (nonatomic , copy , readwrite)NSString *lastName;
-(void)p_privateMethod;
@end

@implementation EOCPerson
-(id)initWithFirstName:(NSString *)firstName lastName:(NSString *)lastName{
    return nil;
}
-(void)p_privateMethod{
    
}
@end
相關文章
相關標籤/搜索