2015-09-01 2 views
0

К сожалению, Apple не переводит свои новые примеры в Objective C. У меня есть рабочий фрагмент кода SWIFT, но мой перевод в цель C не работает. Запрос авторизации не появляются в Objective C кода на iPhone -Необходима помощь при переводе с SWIFT на Objective C «healthStore.requestAuthorizationToShareTypes»

СВИФТ:

class InterfaceController: WKInterfaceController { 

    let healthStore = HKHealthStore() 


    override func willActivate() { 
     super.willActivate() 

     guard let quantityType = HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierHeartRate) else { 
      return 
     } 

     let dataTypes = Set(arrayLiteral: quantityType) 
     healthStore.requestAuthorizationToShareTypes(nil, readTypes: dataTypes) { (success, error) -> Void in 
      if success == false { 

      } 
     } 
    } 

    } 

Objective-C:

@interface InterfaceController() 

@property HKHealthStore * healthScore; 

@end 


@implementation InterfaceController 


- (void)willActivate { 

[super willActivate]; 

NSString * quantity = HKQuantityTypeIdentifierHeartRate; 

HKQuantityType * quantityType = [HKQuantityType quantityTypeForIdentifier:quantity]; 

NSSet <HKQuantityType *> * dataTypes = [NSSet setWithArray:@[quantityType]]; 

[self.healthScore requestAuthorizationToShareTypes:nil readTypes:dataTypes completion:^(BOOL success, NSError * _Nullable error) { 
if (!success) { } }]; 
} 

@end 
+0

Под «нерабочим», что вы имеете в виду? Не компилируется? Не удается успешно завершить авторизацию? Возможно, вам придется сузить это. –

+0

Запрос на авторизацию не отображается в объектном коде c на iPhone. –

ответ

1

Вы мисс создавая healthScore перед его использованием.

let healthStore = HKHealthStore() создает экземпляр.

// Missing initialization 
self.healthScore = [HKHealthStore new]; 

... 

[self.healthScore requestAuthorizationToShareTypes:nil readTypes:dataTypes completion:^(BOOL success, NSError * _Nullable error) { 

 Смежные вопросы

  • Нет связанных вопросов^_^