我对 Objective-C 还是个新手(有 Java 和 C# 背景),我正在为我正在开发的 iOS SDK 实现一个插件系统。
我已经将我的插件头文件 (Plugin.h) 定义如下(java counterpath 将是一个抽象类,如果我在这里做错了什么请纠正我)。
@protocol Plugin <NSObject>
@required
- (void)initialize;
- (NSString *) getPluginName;
- (NSString *) getVersion;
@end
然后我的 SDK 中有一个方法可用于注册插件。该数组将是从 TFTPplugin 继承的对象数组。
+ (void)registerPlugins:(NSMutableArray*) array
{
for(Plugin *plugin in array)
{
[pluginClasses addObject:plugin];
}
}
但我在 for 循环中遇到错误:使用未声明的标识符“插件”。
知道我在这里做错了什么吗?
谢谢
最佳答案
试试这个:
for(id plugin in array){
if([[plugin class] conformsToProtocol:@protocol(Plugin)]) {
[pluginClasses addObject:plugin];
}
}
如果您知道传入的所有内容确实符合协议(protocol),则检查它是否符合协议(protocol)是可选的。
关于ios - For...in 循环导致使用未声明的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32238591/