Objective c 警告:方法定义为‘+;初始’;未找到-但已实现
我是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
*如果有什么不同的话,我是从终端用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];