我如何归还结构?

时间:2013-12-03 23:29:05

标签: objective-c c struct

我有这个代码不起作用,因为用户总是为空。这很奇怪,因为如果我在返回数据之前调试它没关系,但是在返回数据后总是为空。我怎样才能解决这个问题?我非常感谢任何评论,建议或提示......

备注: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;
    }

1 个答案:

答案 0 :(得分:0)

尝试将test更改为:

-(void)test{
    // user is always null
    W_user *user = W_generateUserDefault();
}

然而,这很奇怪,因为局部变量隐藏了全局变量,而不是反之亦然。

另外,您确定没有在release模式下进行调试吗?试试NSLog user值,确保它为nil