Xcode属性不保留值

时间:2015-06-04 14:40:43

标签: ios objective-c xcode properties nsstring

我有一个名为LoginWindowViewController.h的视图控制器,它声明了一个名为usernameTextField的属性:

@property (strong, nonatomic) IBOutlet UITextField *usernameTextField;

名为James的字符串与此TextField相关联。 然后我将另一个视图控制器FirstViewController.h导入到我的LoginWindowViewController.m中,我还将LoginWindowViewController.h导入到FirstViewController.m中。在我的FirstViewController.h中有一个名为username的属性。

@property (strong, nonatomic) IBOutlet NSString *userName;

然后我将usernameTextField分配给用户名(在我的FirstViewController.m中)。但是当我在我的FirstViewController.m中使用NSlog属性用户名时,它会给出一个空值。我该如何修复它?

1 个答案:

答案 0 :(得分:1)

导入类时,实际上并不导入任何值。设置属性的值时,它仅在该类的实例上设置。您需要显式引用当前实例的属性以获取您设置的值。

一个注意事项:IBOutlet代表Interface Builder Outlet,它是如何创建从storyboard或xib文件UI元素到类属性的链接。因此,如果您没有链接到界面构建器中的某些内容,则无需使用IBOutlet。

应声明字符串

@property (nonatomic, strong) NSString *userName;

然后,当您从第一个视图控制器实例化您的登录视图控制器时,您可以像这样设置属性

LoginWindowViewController *loginVC = [[LoginWindowViewController alloc] init];
[loginVC.usernameTextField setText:self.userName];