菜鸟教程小白 发表于 2022-12-13 02:51:38

ios - startUpdatingLocation 不再在 XCode 6.1 中工作


                                            <p><p>我什至无法让最简单的位置更新代码工作。我有一个位置应用程序运行良好一年多,现在当我尝试编译和运行它(升级到 xcode 6.1 并且没有更改代码之后),在调用 startUpdatingLocation 之后,didUpdateLocations 回调永远不会触发,我可以看到 gps 指示器从未出现在电池指示器旁边。
我已经开始了一个新的测试项目,除了尝试注册位置更新之外什么都不做,但结果仍然相同:设备或模拟器上没有位置更新。
下面是测试项目的单 ViewController 的代码:</p>

<pre><code>//ViewController.h
#import &lt;UIKit/UIKit.h&gt;
#import &lt;CoreLocation/CoreLocation.h&gt;

@interface ViewController : UIViewController &lt;CLLocationManagerDelegate&gt;
{

}

@property (strong, nonatomic) CLLocationManager* locationManager;

@end


//ViewController.m
#import &#34;ViewController.h&#34;

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    ;
    self.locationManager = [init];
    self.locationManager.delegate = self;
    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;

    ;

    ;
}

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    NSLog(@&#34;got a location&#34;);
}

-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
    NSLog(@&#34;Error: %@&#34;,error.description);
}
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
   NSLog(@&#34;got a location&#34;);
}

- (void)didReceiveMemoryWarning {
    ;
}

@end
</code></pre>

<p>如果拥有最新版本的 xcode 的人可以创建一个这样的项目,该项目除了接收位置更新之外什么都不做,验证它是否有效,然后完整地发布代码,那就太棒了。我已尝试将内容添加到 plist 文件以及类似问题的所有其他补救措施均无济于事。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>是的,新版本中发生了一些变化,这可能会让人头疼。我遇到了同样的问题,这是为我解决的线程<a href="https://stackoverflow.com/questions/24062509/ios-8-location-services-not-working" rel="noreferrer noopener nofollow">here</a> .</p>

<p>你需要添加这些行 info.plist:</p>

<pre><code>&lt;key&gt;NSLocationWhenInUseUsageDescription&lt;/key&gt;
&lt;string&gt;The spirit of stack overflow is coders helping coders&lt;/string&gt;

&lt;key&gt;NSLocationAlwaysUsageDescription&lt;/key&gt;
&lt;string&gt;I have learned more on stack overflow than anything else&lt;/string&gt;
</code></pre>

<p>并确保在尝试更新用户位置之前调用 <code></code> 或 <code></code>。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - startUpdatingLocation 不再在 XCode 6.1 中工作,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/26577645/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/26577645/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - startUpdatingLocation 不再在 XCode 6.1 中工作