0

我正在阅读别人的项目代码,它可以在32位下成功编译,但是当我将项目切换到64位时,就像标题所说的那样有一个错误消息。

代码:

[obj setAction:(SEL)@selector(start:)];

@selector我知道is的返回值类型SEL和参数setAction需要一个SELargs,但为什么在64位失败?究竟是什么SEL类型?

谢谢!

4

1 回答 1

3

它不应该失败,但你根本不需要演员表。@selector()表达式已经是 type SEL。写吧

[obj setAction:@selector(start:)];

SEL 类型在 C 方面是struct objc_selector *. 但是,在 OS X 和 iOS 上是这样吗?由一个 plain 支持const char *,它在加载时由链接器和内核统一。

于 2012-12-17T07:52:49.740 回答