【问题标题】:Can't build app for iPhone simulator无法为 iPhone 模拟器构建应用程序
【发布时间】:2011-01-04 11:38:33
【问题描述】:

在为 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。我对此感到非常困惑,因为我完全没有对构建配置进行任何更改。

【问题讨论】:

    标签: iphone objective-c xcode ios-simulator


    【解决方案1】:

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

    正因为如此,而且协议仅适用于 Objective-C 对象这一事实,您不能在 SEL 类型上指定协议。

    【讨论】:

    • 这是有道理的。我是 Objective-C 的新手,所以像这样的事情总是让我感到困惑。但是,为什么当我为设备构建时它会编译得很好?
    • 不确定:可能是编译器错误或其他问题。
    猜你喜欢
    • 2021-01-18
    • 2021-01-23
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 2021-09-19
    • 2021-01-21
    相关资源
    最近更新 更多