Friend classes in Objective-C

前端 未结 2 1251
眼角桃花
眼角桃花 2020-12-08 21:45

Is there any way to create something like friend classes in Objective-C?

2条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-08 22:05

    First declare a "private property" using the standard class extension method:

    // VisualNotePlayer.h
    @interface VisualNotePlayer : NSObject{
        @private
        UIView *_currentView;
    }
    
    // VisualNotePlayer.m
    @interface VisualNotePlayer()
    @property (nonatomic, retain) UIView *currentView;
    @end
    
    @implementation VisualNotePlayer
    @synthesize currentView=_currentView;
    ...
    @end
    

    Then recreate the properties in a category:

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

    This interface is only accessible to those who import VisualNotePlayer+Views.h

提交回复
热议问题