我在Xcode 6中遇到了这个问题。如果我在Xcode 5或更低版本中使用它,那就没问题了。
对象会自动实例化,即使它是nil
并且无法检查nil
。
NSString *userID = [DataManager sharedInstance].currentUser.userId;
if (!userID) {
userID = @"user";
}
[userInfo setObject:userID forKey:LogDataUserIDKey];
这就是我正在做的事情,我在最后一行得到EXE_BAD_ACCESS(code=1, address=0x443b800c)
。
userID
被实例化为我附加的屏幕截图。如何检查userID
是否为零。我搞不清楚了。请指教。
答案 0 :(得分:0)
行。我能够解决这个问题。这是因为在User
对象中[DataManager sharedInstance].currentUser
,userId
被声明为实例变量和属性。
@interface User : NSObject <NSCopying>{
NSString *userId; // instance variable
}
@property (nonatomic, retain) NSString * userId;
因此,通过删除实例变量声明并修复了问题。
@interface User : NSObject <NSCopying>
@property (nonatomic, retain) NSString * userId;
但是,我不确定为什么。你们有什么想法吗?