标签: objective-c
我一直在做一些阅读,有点困惑,让我解释一下。
我的情况:
我想做什么:
我做了一些阅读,发现我想创建一个父类,其中包含所有方法,然后在我的类中使用这些方法:
//parentClass.m @implementation parentClass + (void)commonMethod:(id)sender{ ... } @end //classA.m @implementation classA - (void)someMethod{ [parentsClass commonMethod]; } @end //classB.m @implementation classB - (void)someMethod{ [parentClass commonMethod]; } @end
问题:
所以我将方法移动到parentClass.m,将数组移动到parentClass.h。我的问题是当我尝试构建和运行时,我收到Instance variable <someArray> accessed in class method之类的错误。我不知道该怎么做。解决此问题的唯一方法是将我的数组声明在@interface文件中的.h之上吗?
Instance variable <someArray> accessed in class method
@interface
.h
编辑:我想使用这种技术在父类中使用方法的原因是因为我想调用这样的方法:
[commonClass commonMethod];
并且不必每次都声明父类的实例。
谢谢!
答案 0 :(得分:0)
如果要访问实例变量(如数组),则无论继承如何,都必须使用实例方法(而不是类方法)。在方法签名之前,实例方法由-(减号)表示,而类方法使用+。
-
+