我有这个代码不起作用,因为用户总是为空。这很奇怪,因为如果我在返回数据之前调试它没关系,但是在返回数据后总是为空。我怎样才能解决这个问题?我非常感谢任何评论,建议或提示......
备注:xcode 5 iOS 7
数据类型的定义
typedef struct {
char *locale;
} W_user;
.m测试文件
W_user *user;
-(void)test{
// user is always null
user = W_generateUserDefault();
}
方法
W_user *W_new() {
W_user *user = malloc(sizeof(W_user));
memset(user, 0x00, sizeof(W_user));
return user;
}
W_user *W_generateUserDefault() {
W_user *user = W_new();
user->locale = "es";
// but here user contains data
return user;
}
答案 0 :(得分:0)
尝试将test
更改为:
-(void)test{
// user is always null
W_user *user = W_generateUserDefault();
}
然而,这很奇怪,因为局部变量隐藏了全局变量,而不是反之亦然。
另外,您确定没有在release
模式下进行调试吗?试试NSLog
user
值,确保它为nil
。