Ios 字符串在传输时变为空
我试图将两个变量传递给另一个ViewController:用户名和api_键。用户名工作正常,设置为正确的值,但api_键为空Ios 字符串在传输时变为空,ios,objective-c,Ios,Objective C,我试图将两个变量传递给另一个ViewController:用户名和api_键。用户名工作正常,设置为正确的值,但api_键为空 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if([[segue identifier] isEqualToString:@"loginSuccess"]) { myServersViewController *controller = (myServ
-(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];
数组[1]不为null,且具有正确的值
@interface ViewController () {
NSString *key;
}
现在,对于另一个viewcontroller:
@property (nonatomic, strong) NSString *api_key;
@property (nonatomic, strong) NSString *username;
NSLog(@"%@, %@", api_key, username);
输出:
(null), test
如果
用户名
属性显示正确,则说明键
变量存在问题。你在哪里分配它?在其前面放置一个断点,或在分配键之前将键的值记录下来。我确信它是null
,原因不在上面发布的代码中 这不是真正的代码,毫无意义:
@property (nonatomic, strong) NSString *api_key;
@property (nonatomic, strong) NSString *username;
NSLog(@"%@, %@", api_key, username);
你不能在任何地方记录任何旧的时间。您必须在视图控制器生命周期中某个特定时间运行的某个方法中执行此操作。使“key”变量成为另一个强属性:
@property (nonatomic, strong) NSString *api_keyForSegue;
我把它改名为更具描述性的代码。这不是真正的代码。显示真实代码。属性在第二个视图控制器的.h文件中。但我要说的是,NSLog语句不能也在那里。您需要在实际的上下文中显示实际的代码,而不仅仅是一堆不连贯的代码片段,而不说明代码的位置。