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

时间:2022-11-18 20:04:22
  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方法来达到原来的目的了。