-1
我正在研究一个obj-c项目,我想为一个类实现NSCoding协议,但我无法正确理解它。代码如下所示:实现NSCoding协议
#include <Foundation/Foundation.h>
class Object: NSObject, NSCoding {
//Somecode
}
而我得到的错误:“基地符必须命名类”和“预期类名”。我究竟做错了什么?
我正在研究一个obj-c项目,我想为一个类实现NSCoding协议,但我无法正确理解它。代码如下所示:实现NSCoding协议
#include <Foundation/Foundation.h>
class Object: NSObject, NSCoding {
//Somecode
}
而我得到的错误:“基地符必须命名类”和“预期类名”。我究竟做错了什么?
您声明的是C++
类,而不是Objective-C
之一,并且不能从一种语言继承到另一种语言。你需要你的类声明更改为类似
@interface Object: NSObject <NSCoding> {
// iVar declarations
}
// method and property declarations
@end
虽然不知道有多少它将帮助,如果你的类已经定义了C++
方法,因为你需要这些端口一个Objective-C
定义。
我强烈建议您仔细阅读我在我的评论中发布的链接,并阅读Apple's documentation关于使用类和对象的链接。这将帮助您完成转换。
这是快速还是Objective-c?如果它是快速的,你不应该包含,如果它是objective-c这是一个头文件或实现文件? –
@DanF我认为它是Objective-C++,因为'class'不会产生任何错误 – Cristik
@ user3612623 NSObject和NSCoding是'Objective-C'类,而你的代码似乎声明了一个C++类,你可以不从Objective-C继承C++类。 – Cristik