2010-02-11 29 views

Trả lời

30

đầu tiên khai báo một "tài sản riêng" bằng cách sử dụng phương pháp tiêu chuẩn mở rộng lớp:

// VisualNotePlayer.h 
@interface VisualNotePlayer : NSObject<NotePlayer>{ 
    @private 
    UIView *_currentView; 
} 

// VisualNotePlayer.m 
@interface VisualNotePlayer() 
@property (nonatomic, retain) UIView *currentView; 
@end 

@implementation VisualNotePlayer 
@synthesize currentView=_currentView; 
... 
@end 

Sau đó tái tạo lại tài sản trong danh mục:

// VisualNotePlayer+Views.h 
@interface VisualNotePlayer(Views) 
@property (nonatomic, retain) UIView *currentView; 
@end 

Giao diện này chỉ là tiếp cận với những người nhập VisualNotePlayer+Views.h

+0

Ah ... Vì vậy, bạn cần có một vài tệp .h cho cùng một lớp một cách hiệu quả. –

5

Không có thứ gì như lớp bạn bè trong ObjC.

Và để truy cập biến riêng của một lớp khác, bạn thậm chí không cần phải được khai báo là bạn bè. Ví dụ: bạn có thể sử dụng các hàm thời gian chạy

id the_private_ivar; 
object_getInstanceVariable(the_object, "_ivar_name", &the_private_ivar); 

để nhận the_object->_ivar_name, bỏ qua kiểm tra trình biên dịch.

Các vấn đề liên quan