我正在利用我的空闲时间来玩Objective C.我正在阅读有关协议但我担心我可能会错误地使用它,考虑到我使用它的方式相同(至少几乎相同)我使用C#代码。
所以,这就是我得到的。我有一个协议,一个类管理器来弱化我的观点和两个实现协议的视图。
@protocol IView <NSObject>
- (void) loadViewToScreen;
@end
@interface ViewManager : NSObject
@property (atomic, weak) id<IView> document;
@property (atomic, weak) id<IView> browser;
//Singleton
+ (id) getInstance;
@end
然后我将一个视图称为彼此视图。
ViewManager *vm = [ViewManager getInstance];
[vm.browser loadViewToScreen];
我对此感兴趣的是将视图加载到屏幕的最佳方法。它只是一个测试协议的模拟代码。
我无法让经理使用指针协议。所以我担心我会看到副本。我做对了吗?
谢谢, 卢卡斯
答案 0 :(得分:1)
协议,只是一个对象或类的类型的一部分。您无法获得指向协议的指针。 (嗯,实际上你可以获得一个协议对象,但这是运行时模拟,这似乎不是你想要的)。
但是,不要害怕获得副本。除非您复制对象或将其分配给复制属性,否则您将获得指向同一实例的指针。