我收到以下错误(是的,我已经一次又一次地搜索谷歌):
我有多个外部NSInteger'定义并且可以使用它们,尽管这个时间点击'由于某种原因导致此错误
在其他线程上,人们谈论添加框架和包含内容,但在这里我只使用一个NSInteger
在我的.h
在我的.m
答案 0 :(得分:0)
可能是你实际上没有定义 timeOfClick
变量(在.m文件中)。将extern声明放在标题中说“别担心,这个东西会在某处定义,你会在链接时找到它”。如果链接器出现(就像这里)并且它实际上找不到定义的变量,那么你将得到这样的错误。
基本上,您希望在实现(.m)文件中的某处NSInteger timeOfClick
。
答案 1 :(得分:0)
我认为你收到了错误,因为你没有写
@synthesize timeofclick2;
在@implementation ReactingViewController
下。
默认情况下,如果您只声明属性但未明确合成属性,编译器将为您生成实例变量(ivar)。生成的ivar通常为_<property_name>
,就像您的情况_timeofclick2
一样,而不是与属性相同的名称。
因此,当您尝试在没有timeofclick2
前缀的情况下调用_
时出现错误,因为没有名称的ivar。
通过显式写@synthesize <property_name>
(不带'&lt; ..&gt;'),编译器将为您生成具有该属性名称的ivar。
因此,如果您添加我上面提到的代码,编译器将为您创建ivar timeofclick2
。然后你可以通过你的外部访问它。
......或者另一种解决方案,你可以从
改变外部extern NSInteger timeofclick2;
到
extern NSInteger _timeofclick2;
那你就没事了:D