0

[__NSCFString timeIntervalSinceReferenceDate]: непризнанные селектор направлен например 0x6c2ccb0[__NSCFString timeIntervalSinceReferenceDate]: непризнанные селектор направлен например 0x6c2ccb0 в ABRecordSetValue

Я получаю эту ошибку в моем коде, когда я пытаюсь поставить контакт в адресной книге , Цените любое решение

 NSArray *names=[test componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
     NSLog(@"Count:%d,%d",[names count],[test length],[names objectAtIndex:0],[names objectAtIndex:1]); 
     //Works fine, a sample output-> For String:John Smith ; Count:2,10,John,Smith 

     //CFStringRef temp; //for troubleshooting 

    switch([names count]) 
    { 
    case 1:ABRecordSetValue(self.person12,kABPersonFirstNameProperty,(__bridge_retained CFTypeRef)([names objectAtIndex:0]), NULL); 
           break; 
    case 2: // Error occurs in case 2 as count is 2 
    { 

     //Commented region is what I tried out as an alternative but didnt work 
    /*temp=(__bridge_retained CFTypeRef)((NSString*)[names objectAtIndex:0]); 
           ABRecordSetValue(self.person12,kABPersonFirstNameProperty,(CFTypeRef)temp,NULL); 

    temp=(__bridge_retained CFStringRef)((NSString*)[[names objectAtIndex:1] substringToIndex:[[names objectAtIndex:1] length]-1]); 
           ABRecordSetValue(self.person12,kABPersonLastNameProperty,temp,NULL);*/ 

ABRecordSetValue(self.person12,kABPersonFirstNameProperty,(__bridge CFTypeRef)([names objectAtIndex:0]),NULL);// Error occurs after the execution of breakpoint here 

ABRecordSetValue(self.person12,kABPersonLastNameProperty,(__bridge CFTypeRef)([[names objectAtIndex:1] substringToIndex:[[names objectAtIndex:1] length]-1]),NULL); 
    break; 
     } 



    default: 
     { 
    ABRecordSetValue(self.person12,kABPersonFirstNameProperty,(__bridge_retained CFTypeRef)([names objectAtIndex:0]),NULL); 
           ABRecordSetValue(self.person12,kABPersonMiddleNameProperty,(__bridge_retained CFTypeRef)([names objectAtIndex:1]),NULL); 
           [email protected]""; 
     for(int j=2;j<[names count];j++) 
       test=[test stringByAppendingString:[names objectAtIndex:j]]; 

     test=[test substringToIndex:[test length]- 1]; 
           ABRecordSetValue(self.person12,kABPersonLastNameProperty,(__bridge_retained CFTypeRef)test,NULL); 
     break; 
     } 
    } 
+3

Это означает, что вы пытаетесь использовать 'NSString' как' NSDate', и среда выполнения ему не нравится. Проверьте переменные. – borrrden

+0

Нет NSDate, я пытаюсь установить строку в имени для моего kABPersonFirstNameProperty – Gamerlegend

+2

Проблема в том, что вы используете 'NSString' * где-то *, который ожидает' NSDate'. Это может быть даже не здесь, если одновременно выполняются параллельные операции. Вывести трассировку стека. – borrrden

ответ

0

Инициализировать ABRecordRef
т.е.

self.person12=ABPersonCreate(); 

также

инициализации адресной книги

self.addressBook=ABAddressBookCreate(); 

это решит проблему!

+0

Отлично, что, кажется, удаляет ошибку, вы здорово !!! – Gamerlegend

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

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