私下实施协议?

Mr.*_*ith 10 cocoa-touch objective-c

可能重复:
私下符合协议

我的一类尝试将自己注册为它创建的NSXMLParser对象的委托.但是,我不认为我希望我的类公开披露它实现NSXMLParserDelegate协议,因为NSXMLParser对象是仅在类中使用的私有变量.

我是否有权避免公开协议,如果是这样,我如何实现协议而不公开该类协议?

pau*_*kow 15

尝试将它放在.m文件中:

@interface MyClass (Private) <NSXMLParser>
@end
Run Code Online (Sandbox Code Playgroud)

特定的类别名称(Private)并不重要 - 实际上你可以使用一组空的括号(见下文) - 但我认为这应该要求你实现所需的方法并告诉编译器你的类实现了协议,至少在那个文件中.

如果还是不行,请尝试简单地删除<NSXMLParser>从您的.h文件中,并投selfid<NSXMLParser>必要时设置解析器的委托时.