gpt4 book ai didi

objective-c - NS_DESIGNATED_INITIALIZER 预期为 : (colon)

转载 作者:太空狗 更新时间:2023-10-30 03:11:29 24 4
gpt4 key购买 nike

我正在尝试像这样声明一个指定的初始化器:

- (instancetype)initWithDelegate:(id <MyDelegate>)delegate NS_DESIGNATED_INITIALIZER;

但它向我显示了这个编译错误:

Expected ':'

有趣的是,当我尝试这样写时(引用链接:Adopting Modern Objective-C)-

- (instancetype)init NS_DESIGNATED_INITIALIZER;

它显示了这个错误:

Expected ';' after method prototype.

关于如何正确使用 NS_DESIGNATED_INITIALIZER 有什么想法吗?

最佳答案

NS_DESIGNATED_INITIALIZER 宏未在 Xcode 5 的库 header 中定义 - 您需要 Xcode 6 才能使用它。请注意您的链接显示“预发布”。

宏定义如下(引用NSObjCRuntime.h)

#ifndef NS_DESIGNATED_INITIALIZER
#if __has_attribute(objc_designated_initializer)
#define NS_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
#else
#define NS_DESIGNATED_INITIALIZER
#endif
#endif

注意你仍然可以使用

- (instancetype)initWithDelegate:(id <MyDelegate>)delegate __attribute__((objc_designated_initializer));

在 Xcode 5 中,或者您可以将该宏显式添加到您的预编译 header 中。

关于objective-c - NS_DESIGNATED_INITIALIZER 预期为 : (colon),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24119896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com