2016-08-14 9 views
0

자동화 용 JavaScript에서 ObjC 브릿지 연락처 프레임 워크를 어떻게 사용합니까? 이전 주소록 프레임 워크를 사용할 수 있지만 연락처는 사용할 수 없습니다. 이전 주소록 프레임 워크가 잘 작동objC bridge 사용 자동화 용 JavaScript의 연락처 프레임 워크

id = Application("Contacts").myCard().id() 

:

ObjC.import("AddressBook"); 

book = $.ABAddressBook.addressBook 
person = book.recordForUniqueId(id) 
console.log(person.valueForProperty($.kABFirstNameProperty).js) 

하지만 어떻게이 연락처 프레임 워크를 사용하는

이의 내가 ID를 가지고 있다고 가정 해 봅시다? 나는 ( unifiedContactWithIdentifier에 대한 문서 기준) 시도 : 스크립트 오류 :이 오류 -2700 함께 실패

ObjC.import('Contacts') 

keysToFetch = [ $.CNContactGivenNameKey, $.CNContactFamilyNameKey ] 

store = $.CNContactStore 
store.unifiedContactWithIdentifierKeysToFetchError(id, keysToFetch, null) 
... 

. 더욱 기본적인 예는 defaultContainerIdentifier 방법은 undefined 출력을 제공 : 팝업은 TypeError: store.unifiedContactWithIdentifierKeysToFetchError is not a function

편집 말한다 당신은 클래스 메소드 +addressBook를 사용하여 클래스의 인스턴스를 얻을 첫 번째 경우에

ObjC.import('Contacts') 
store = $.CNContactStore 
console.log(store) 
/* [Class CNContactStore] */ 
console.log(store.defaultContainerIdentifier) 
/* undefined */ 

답변

2

합니다. 두 번째 경우에는 인스턴스가없고 인스턴스 메서드를 호출하려고합니다. 클래스에서 인스턴스 메서드를 호출 할 수 없습니다.

은 당신이 사용하여 새 인스턴스를 만들 수 있다고 가정 : 물론

store = $.CNContactStore.alloc.init 
+0

! 감사. – wivku