2016-10-24 8 views
1

私は旧式のABAdressBookコードをObjective Cの現在のCNContactフレームワークに置き換えています。ホームシティの部分を除いてほとんどのものを整理できました。 現在、私はこのコードを持っている:iOS +9の連絡先フレームワークからHome Cityを取得するには?

-(NSArray *)getLandAddressesForContactIOS6:(ABRecordRef)recordRef { 

     ABMultiValueRef addresses = ABRecordCopyValue(recordRef, kABPersonAddressProperty); 
     NSMutableArray *formattedAddressesResponse = [NSMutableArray array]; 

     for(CFIndex i = 0; i < ABMultiValueGetCount(addresses); i++) { 

      NSString *label = (__bridge NSString *)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(addresses, i)); 
      NSDictionary *addressComponents = (__bridge NSDictionary*)ABMultiValueCopyValueAtIndex(addresses, i); 

      NSString *street = [addressComponents objectForKey:(NSString *)kABPersonAddressStreetKey]; 
      NSString *city = [addressComponents objectForKey:(NSString *)kABPersonAddressCityKey];    
      NSString *formattedAddress = ABCreateStringWithAddressDictionary(addressComponents, YES); 

      NSMutableDictionary *currentAddressResponse = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
                  label, @"type", 
                  label, @"label", 
                  nil]; 
      if (street != nil) { 
       [currentAddressResponse setObject:street forKey:@"street"]; 
      } 
      if (city != nil) { 
       [currentAddressResponse setObject:city forKey:@"city"]; 
      } 
      if (formattedAddress != nil) { 
       [currentAddressResponse setObject:formattedAddress forKey:@"formattedAddress"]; 
      } 

      [formattedAddressesResponse addObject:currentAddressResponse]; 
     } 

     return formattedAddressesResponse; 
    } 

私は新しい連絡先のフレームワークと一緒に家の街を取得するために持っている最も近いがあるので、このコードは、9+ iOS用廃止されました:

-(NSArray *)getLandAddressesForContactIOS10:(CNContact*)recordRef { 
    NSArray <CNLabeledValue<CNPostalAddress *> *> *addresses = recordRef.postalAddresses; 

    NSMutableArray *formattedAdressResponse = [NSMutableArray array]; 
    for(CFIndex i = 0; i < addresses.count; i++) { 
     CNLabeledValue *addressi = [addresses objectAtIndex:i]; 
     //NSString *city = addressi.??????; //Stuck here, don't know what else to do 

どのようにすることができますCNContactから市の名前を抽出する??

答えて

0
-(void)getLandAddressesForContactIOS10:(CNContact*)contact 
{ 
    for (CNLabeledValue<CNPostalAddress*>* labeledValue in contact.postalAddresses) 
    { 

      NSLog(@"%@",labeledValue.value.city); 

      NSLog(@"%@",labeledValue.value.street); 

      NSLog(@"%@",labeledValue.value.state); 

      NSLog(@"%@",labeledValue.value.postalCode); 

      NSLog(@"%@",labeledValue.value.ISOCountryCode); 

    } 
} 
関連する問題