我有一个视图,我在那里读取json数据。并从中提取密钥。
in - (void)viewDidLoad { 我做了以下事情:
hotellat = [rows4 valueForKey:@"H_LAT"];
hotellon = [rows4 valueForKey:@"H_LON"];
然后我在viewDidLoad之后执行推送,如下所示:
- (IBAction)buttonClicked:(id)sender
{
NSLog(@"hotellat: %@",hotellat);
MapTutorialViewController *controller = [[MapTutorialViewController alloc] initWithNibName:@"MapTutorialViewController" bundle:[NSBundle mainBundle]];
controller.LAT = hotellat;
controller.LON = hotellon;
[self.navigationController pushViewController:controller animated:YES];
[controller release];
}
本节中的NSlog显示hotellat为null,但是当我在viewDidload中编写nslog时,有一个值。为了让这个变量传递给下一个视图我需要做什么?这也是一个字符串,我想我需要将它转换为整数,以便我可以将它分配给地图视图中的纬度?
我也@synthesize hotellat,hotellon;在控制器中并在.h文件中包含以下内容:
@property (nonatomic, retain) NSString *hotellat;
@property (nonatomic, retain) NSString *hotellon;
答案 0 :(得分:0)
虽然您正在使用保留变量,但保留消息未通过此分配发送到值:
hotellat = [rows4 valueForKey:@"H_LAT"];
hotellon = [rows4 valueForKey:@"H_LON"];
使用:
self.hotellat = [rows4 valueForKey:@"H_LAT"];
self.hotellon = [rows4 valueForKey:@"H_LON"];
这样保留消息将传递给值,并确保它保持在那里直到你明确地释放它。
稍后您可以释放值:
接下来说:[controller release];
[hotellat release];
[hotellon release];