Objective c 警告:方法定义为‘+;初始’;未找到-但已实现

Objective c 警告:方法定义为‘+;初始’;未找到-但已实现,objective-c,Objective C,我是Objective-C新手,正在尝试构建一个简单的类。我现在有了一段工作代码,但由于某些原因,我无法摆脱两个警告。我做错了什么? *如果有什么不同的话,我是从终端用GCC编译的 代码: 输出: test.m:26: warning: incomplete implementation of class ‘ValueAssignment’ test.m:26: warning: method definition for ‘+init’ not found test.m:26: warning

我是Objective-C新手,正在尝试构建一个简单的类。我现在有了一段工作代码,但由于某些原因,我无法摆脱两个警告。我做错了什么?
*如果有什么不同的话,我是从终端用GCC编译的

代码:

输出:

test.m:26: warning: incomplete implementation of class ‘ValueAssignment’
test.m:26: warning: method definition for ‘+init’ not found
test.m:26: warning: method definition for ‘+setVar:’ not found

编辑:

如果将实现部分更改为
+(id)init{
,则会得到以下输出:

test.m: In function ‘+[ValueAssignment setVar:]’:
test.m:16: warning: instance variable ‘name’ accessed in class method
test.m: In function ‘+[ValueAssignment init]’:
test.m:21: warning: instance variable ‘name’ accessed in class method

类方法+init和实例方法-init之间存在差异。

更改接口。您将
init
声明为类方法而不是实例方法:

+ (id) init;
应该是:

- (id) init;
setVar:
方法相同

除非你有充分的理由不这样做,否则改变:

id o = [[ValueAssignment alloc] init];
致:


我改了。你改错了。读我的答案。好吧,现在它给了我一个分段错误…-\--不管怎样,你能用一句话说一下-和+的意思吗?我认为它是“私有”和“公共”的。-谢谢!不,它是类和实例。请找一个好的Objective-C教程来学习该语言的基础知识。至于分段错误,t这是一个全新的问题。此问题已得到回答和解决。结束此问题。最好在调试此问题后发布有关分段错误的新问题。
- (id) init;
id o = [[ValueAssignment alloc] init];
ValueAssignment *o = [[ValueAssignment alloc] init];