无法为iPhone模拟器构建应用程序

时间:2010-01-13 03:51:21

标签: iphone objective-c xcode ios-simulator

在构建iPhone模拟器时,我无法构建一个非常简单的程序。然而,它可以为设备编译好!

编译器不喜欢的示例代码:

@protocol Invokable
- (id) invoke: (id)arg with:(id)data;
@end

@interface Worker : NSThread
{
  NSAutoreleasePool* memoryPool;  
}

- (void) invoke:(id)target selector:(SEL<Invokable>)selector arg:(id)arg data:(id)data;

//........    

@end

问题在于使用'SEL' - 编译器在每次使用时都抱怨“合格类型不是有效对象”

我在Snow Leopard上运行xcode 3.2.1。我对此感到很困惑,因为我的构建配置完全没有变化。

1 个答案:

答案 0 :(得分:2)

这里的答案不明显,但编译器是正确的。类型SEL实际上只是一个typedef'd char*,而不是Objective-C对象。

因此,以及协议仅适用于Objective-C对象的事实,您无法在SEL类型上指定协议。