ios - For...in 循环导致使用未声明的标识符

标签 ios objective-c

我对 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/

相关文章:

ios - 带 Collection View 的动态布局 iOS

ios - AutoLayout 的按钮彼此重叠

网页和 IOS 应用程序之间的 Javascript 接口(interface)无法正常工作。为什么我的应用程序无法接收消息?

iphone - 什么是0xdb8844?

iphone - 如何实现 map 上位置的雷达 View ?

ios - 从 Parse.com 获取 NSString 并将其粘贴到 UILabel 中

iphone - 单击按钮时删除 map 注释(已创建注释)

ios - 保存在 TableView 中生成的随机数

ios - NSDate 返回一个负的 NSTimeInterval

ios - 带有 XML 的 Boxee UDP 广播发现 API(远程)