访问存储在其中的方法之外的属性

时间:2014-02-16 12:44:47

标签: ios objective-c

[_weatherAPI currentWeatherByCoordinate:CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude) withCallback:^(NSError *error, NSDictionary *result) {
    downloadCount++;
    if (downloadCount > 1)
        if (error) {
        }

    _saveTemp = result[@"main"][@"temp"];

在这个方法中,我将temp保存到NSString中。

@property (nonatomic) NSString *saveTemp;

如何在此方法之外访问此NSString的值?例如,我正在尝试这样做

- (void)viewDidLoad
{
    NSLog(@"%@", _saveTemp);
}

3 个答案:

答案 0 :(得分:0)

您是否尝试过self.saveTemp

此外,您应该创建属性strong

@property (strong, nonatomic) NSString *saveTemp;

答案 1 :(得分:0)

你正在做的是完全正确的,除了在viewDidLoad时_weatherApi ......没有调用Thing,因此_saveTemp未初始化。您应该使用[self setSaveTemp:...]在_weather中设置它,以便正确保留它。

答案 2 :(得分:0)

尝试使用“复制”

创建属性
@property (copy, nonatomic) NSString *saveTemp;

并尝试调用setter

[self setSaveTemp:result[@"main"][@"temp"]];

-(void)setSaveTemp:(NSString *)saveTemp {
   _sateTemp = saveTemp;
}