Ios 如何让块运行一次,但每次打开viewController时?
好吧,我想我解决了这个问题,但是遇到了另一个 我获取用户的位置,然后使用他们的坐标来查找他们当前所在的邮政编码,但是当我在块中运行它时,它只会注销到控制台一次。当我尝试用另一种方法运行该块时,它会吐出很多次,而且都使用相同的邮政编码 我的问题是,我如何使块打印一个邮政编码,并且每次打开视图控制器时都打印一个邮政编码Ios 如何让块运行一次,但每次打开viewController时?,ios,objective-c,objective-c-blocks,Ios,Objective C,Objective C Blocks,好吧,我想我解决了这个问题,但是遇到了另一个 我获取用户的位置,然后使用他们的坐标来查找他们当前所在的邮政编码,但是当我在块中运行它时,它只会注销到控制台一次。当我尝试用另一种方法运行该块时,它会吐出很多次,而且都使用相同的邮政编码 我的问题是,我如何使块打印一个邮政编码,并且每次打开视图控制器时都打印一个邮政编码 //user's location locationManager = [[CLLocationManager alloc] init]; locationManag
//user's location
locationManager = [[CLLocationManager alloc] init];
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
[locationManager startUpdatingLocation];
CLGeocoder *fgeo = [[CLGeocoder alloc] init];
[fgeo reverseGeocodeLocation:locationManager.location completionHandler:^(NSArray *placemarks, NSError *error) {
if (!error) {
CLPlacemark *placemark = [placemarks objectAtIndex:0];
zip = placemark.postalCode;
NSLog(@"%@", zip);
//[self jsonRequest];
当我尝试用另一种方法运行程序块时,它会吐出大量的数据
所有时间都使用相同的邮政编码
一旦它输入If(!error),就输入一个return语句,这应该可以解决问题。覆盖
viewdide
并将代码放入其中。每次视图控制器出现时都会调用。如果希望在创建视图控制器并即将显示时仅调用一次,请覆盖viewDidLoad
如果只想在视图出现在屏幕上后调用一次,则必须在
viewdideappear
中检查是否有指示其是否第一次出现的内容。您可能需要在viewDidLoad
或init
中设置一个标志,然后在第一次调用viewdidappeage
时取消设置 要使其在显示视图时运行,将显示“放入视图”。对于问题的第2部分不太清楚。这取决于你所说的“提出”是什么意思,但viewwillbeen
似乎是一个起点。加入viewwillbeen似乎解决了所有问题。谢谢你们!