传输时字符串变为空

时间:2015-04-13 19:03:24

标签: ios objective-c

我正在尝试将两个变量传递给另一个ViewController:username和api_key。用户名工作正常,并设置为正确的值,但api_key为空。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if([[segue identifier] isEqualToString:@"loginSuccess"]) {
        myServersViewController *controller = (myServersViewController*)[segue destinationViewController];
        controller.api_key = key;
        controller.username = usernameField.text;
    }
}

[self performSegueWithIdentifier:@"loginSuccess" sender:self];
            key = array[1];

array [1]不为null且值正确。

@interface ViewController () {
    NSString *key;
}

现在对于另一个viewcontroller:

@property (nonatomic, strong) NSString *api_key;
@property (nonatomic, strong) NSString *username;

NSLog(@"%@, %@", api_key, username);

输出:

(null), test

3 个答案:

答案 0 :(得分:0)

如果username属性显示正确,那么它必须是您的key变量的问题。你在哪里分配它?在分配之前放置一个断点或者在分配之前NSLog键的值。我确定它是null由于上面发布的代码之外的某些原因。

答案 1 :(得分:0)

这不是真正的代码,没有任何意义:

@property (nonatomic, strong) NSString *api_key;
@property (nonatomic, strong) NSString *username;

NSLog(@"%@, %@", api_key, username);

你无法在任何地方记录任何旧时光。你必须在视图控制器的生命周期中的某个特定时间运行的某个方法中执行

答案 2 :(得分:0)

让你的“钥匙”变量成为另一个强大的属性:

@property (nonatomic, strong) NSString *api_keyForSegue;

我将其重命名为更具描述性的内容。