我阅读了有关此主题的几个主题,但我无法解决我的问题。请帮我。我想我解决问题太愚蠢了。
我的问题:我有一个ViewController,我使用故事板 - 我创建了一个NNString属性 - NSString获取一个值 - 然后我想用NSLog打印出NSString,但我总是得到值null
感谢您的帮助,对不起这个愚蠢的问题感到抱歉。这是我的代码的一小部分,因为我认为整个代码很长时间在这里发布。
ViewController.h
@property (nonatomic, retain) NSString *loggedinID;
ViewController.m
@synthesize loggedinID,
...
IBAction的第一种方法
loggedinID = [jsonData objectForKey:@"id"] ;
现在另一种方法是IBAction,我想要使用属性
NSLog(@"%@", loggedinID);
答案 0 :(得分:0)
就像评论中的人说的......首先摆脱这个@synthesize
的事情。当您声明属性时,编译器会自动为您执行此操作。从现在开始,您应该通过 mutators (setter和getter)访问您的房产
self.loggedinID = [jsonData objectForKey:@"id"]; // Calling setter
[self.loggedinID stringWithString:[jsonData objectForKey:@"id"]]; // Seeter as well
_loggedinID = [jsonData objectForKey:@"id"]; // ivar
[_loggedinID stringWithString:[jsonData objectForKey:@"id"]]; // ivar as well
这是通过mutators访问您的属性的好方法。对我来说,使用ivar的唯一好处是初始化器。
其次,检查这个jsonData
...这可能是你的字符串属性中的null问题。
最后,在开始时,您已宣布@property
为loggedinID
,之后您尝试记录loggedinFirstName
。
答案 1 :(得分:-1)
首先:您不再需要synthesize
。
回答你的问题:你正在记录另一个变量。
loggedinFirstName != loggedinID
答案 2 :(得分:-1)
不要在ARC中使用@synthesize。尝试通过将self添加到字符串变量中来设置值。
您也可以将字符串STRONG而不是RETAIN。
由于