正确使用Objective-C协议

时间:2013-03-20 14:15:42

标签: objective-c interface protocols

我正在利用我的空闲时间来玩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];

我对此感兴趣的是将视图加载到屏幕的最佳方法。它只是一个测试协议的模拟代码。

我无法让经理使用指针协议。所以我担心我会看到副本。我做对了吗?

谢谢, 卢卡斯

1 个答案:

答案 0 :(得分:1)

协议,只是一个对象或类的类型的一部分。您无法获得指向协议的指针。 (嗯,实际上你可以获得一个协议对象,但这是运行时模拟,这似乎不是你想要的)。

但是,不要害怕获得副本。除非您复制对象或将其分配给复制属性,否则您将获得指向同一实例的指针。