【发布时间】:2018-03-06 09:42:07
【问题描述】:
在我的头文件中,我声明了
extern NSString * const UserDefault_ClusterItemWidth;
在我的实现文件中我给了它一个值
NSString * const UserDefault_ClusterItemWidth = @"ClusterItemWidth";
一切似乎都是正确的,但是当我调用它时
[[NSUserDefaults standardUserDefaults] setFloat:0.0f forKey:UserDefault_ClusterItemWidth];
我明白了
Thread 1: EXC_BAD_ACCESS (code=2, address=0x16fb1b700)
当我将鼠标放在常量上方时,XCode 会显示类似的内容
(NSString *const) UserDefault_ClusterItemWidth = 0x0000000100c1c698
而不是@"ClusterItemWidth"
我对正在发生的事情一无所知。
谢谢。
【问题讨论】:
-
很可能您必须使用
@interface和@implementation部分来声明和定义Objective-C 对象 -
@AntonMalyshev 感谢您的评论。但是,我相信这里不是这样,因为常量是一个全局常量。据我所知,您在
.h file中声明了常量,并在.m file中为其赋值。不需要@interface或@implementation。这是一个例子:[stackoverflow.com/questions/11932969/…. -
@KwokPingLau 我认为问题来自另一个地方。使用上述代码创建新项目时没有任何反应。
-
@trungduc thx,我一定会仔细看看。但到目前为止,没有运气。
-
@trungduc 谢谢你,是的,你是对的。显然我不小心创建了一个无限循环。
标签: objective-c xcode constants exc-bad-access