首页 > 代码库 > 使用Xcode6和IOS8SDK以后遇到的问题

使用Xcode6和IOS8SDK以后遇到的问题

  1. 定位。苹果在IOS8里面修改了定位授权协议,也就意味着你原来的app在ios8上很可能无法定位。目前最好的办法就是在app启动的时候调用IOS8的定位授权API来获取用户的授权,这样就不要在其他地方做修改了。
     if (OSVersion>=8.0) {        CLLocationManager *clloc = [[CLLocationManager alloc] init];        [clloc requestAlwaysAuthorization]; }

     除了以上的代码,还需要在app的plist文件里面添加两个属性NSLocationAlwaysUsageDescription,NSLocationWhenInUseDescription。这两个属性的value你可以自定义也可以不填。

  2. 消息推送API的修改。原来我们只需要调用registerForRemoteNotificationTypes这个方法就可以了,但是在IOS8中需要先配置然后再注册,也就是先调用registerUserNotificationSettings然后在调用registerForRemoteNotificationTypes方法。
    if(OSVersion>=8.0){//8.0以后使用这种方法来注册推送通知        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationTypeAlert categories:nil];        [[UIApplication sharedApplication] registerUserNotificationSettings:settings];                UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes];    }else{        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeBadge)];}

     

  3. 在IOS8以前苹果允许我们为某个自定义的类添加description属性,但是在IOS8以后就不可以了。只能通过重写description的get方法来达到原来的目的了。

 

使用Xcode6和IOS8SDK以后遇到的问题