【问题标题】:Unable to read NSString * const in Objective C无法在 Objective C 中读取 NSString * const
【发布时间】: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


【解决方案1】:

显然,我不小心创建了一个无限循环,一遍又一遍地设置 NSUserDefaults 并导致应用崩溃。

【讨论】:

  • 干得好,然后将此答案设置为可接受的答案。
  • @JoeRazon 谢谢^^。不过好像只能明天接受了,有一段时间才能接受。
猜你喜欢
  • 2011-03-12
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-17
相关资源
最近更新 更多