저는 객관적인 C를 처음 접했고 저는 앱을 급히 만들어야하는 위치에 있습니다. 나는 앱 나는 QR 코드를 감지하고있는 NSString 형식으로 vCard를 얻는 것의 일부에 엑스 코드 4.2VCard 리더가 작동하지 않습니다.
을 사용하고 있습니다 : 다음 코드를 사용하여 함수를했다 : - 난 프레임 워크에 다음과 같은 수입 :
.H 파일에AddressBookUI.framework
AddressBook.framework
내가 쓴 :
#import <addressBook/AddressBook.h>
#import <AddressBookUI/AddressBookUI.h>
@interface HellowWorld : UIViewController<ABPeoplePickerNavigationControllerDelegate>{
}
-(IBAction)saveContacts;
@end
을 내가 쓴하는 .m 파일 :
-(IBAction)saveContacts{
NSString *vCardString = test //where the data will be comming from
CFDataRef vCardData = (CFDataRef)[vCardString dataUsingEncoding:NSUTF8StringEncoding]; ABAddressBookRef book = ABAddressBookCreate();
ABRecordRef defaultSource = ABAddressBookCopyDefaultSource(book);
CFArrayRef vCardPeople = ABPersonCreatePeopleInSourceWithVCardRepresentation(defaultSource, vCardData);
for (CFIndex index = 0; index < CFArrayGetCount(vCardPeople); index++) {
ABRecordRef person = CFArrayGetValueAtIndex(vCardPeople, index);
ABAddressBookAddRecord(book, person, NULL);
CFRelease(person);
}
CFRelease(vCardPeople);
CFRelease(defaultSource);
ABAddressBookSave(book, NULL);
CFRelease(book);
}
이 코드를 사용했지만 작동하지 않습니다.
CFDataRef vCardData = (CFDataRef)[vCardString dataUsingEncoding:NSUTF8StringEncoding];
나는이로 변경했다 :
첫째는이 라인 컴파일되지 않았다
CFDataRef vCardData = (__bridge CFDataRef)[vCardString dataUsingEncoding:NSUTF8StringEncoding];
을하고 컴파일 한 후에는이 라인에 충돌 :
for (CFIndex index = 0; index < CFArrayGetCount(vCardPeople); index++) {
다음과 같은 녹색 오류가 나타납니다 : Thread1: Program Received Signal "EXC_BAD_ACCESS"
. 이유가 있습니까?
또한 주소록에 VCard (NSString 형식)를 저장하는 유일한 방법입니까? 다른 제안?
"나는'목적 C'에 새로운 오전과 내가 :
그리고이 함수를 호출 :
AddressbookUi.framework
이
Addressbook.framework
이 헤더를 포함 추가 '내가 갑자기 앱을 만들어야한다.'라고 말한 위치에서 : Ohhhh, my god .... Ohhh, my go d .... – Oliver