2012-09-07 4 views
0

PhoneGap을 사용하여 iPhone/Android에 연락처를 저장하고 있습니다. 전반적으로 작동하고있는 것처럼 보이지만 최근 contact에서 contactAddress() 객체에 실제 주소를 설정하려고 할 때 잡히지 않는 예외가 발생한다는 사실에 대한 최근의 추락을 추적했습니다. PhoneGap : ContactAddress 설정시 캐치되지 않는 예외 받기

는 내가 저장하려고 접촉에 JSON.stringify을했다 : 관계없이

2012-09-06 21:50:38.358 MyApp[6224:707] typeValue: (null) 

2012-09-06 21:50:38.359 MyApp[6224:707] *** WebKit discarded an uncaught exception in the webView:decidePolicyForNavigationAction:request:frame:decisionListener: delegate: <NSInvalidArgumentException> -[__NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: type) 

이 일어날 것 같다 :이 저장하려고하면

{ 
    "id": 41, 
    "rawId": null, 
    "displayName": "Joe Customer", 
    "name": { 
     "givenName": "Joe", 
     "familyName": "Customer" 
    }, 
    "nickname": null, 
    "phoneNumbers": [ 
     { 
      "name": "work", 
      "value": "2145556666", 
      "pref": true 
     }, 
     { 
      "name": "fax", 
      "value": "2147778888", 
      "pref": true 
     } 
    ], 
    "addresses": [ 
     { 
      "streetAddress": null, 
      "locality": "Dallas", 
      "region": null, 
      "postalCode": null, 
      "country": null 
     } 
    ], 
    "ims": null, 
    "organizations": [ 
     { 
      "pref": true, 
      "type": "work", 
      "name": "Acme Inc.", 
      "department": null, 
      "title": "Sales Person" 
     } 
    ], 
    "birthday": null, 
    "note": null, 
    "photos": null, 
    "categories": null, 
    "urls": [ 
     { 
      "name": "website", 
      "value": "http://www.google.com", 
      "pref": true 
     } 
    ] 
} 

을, 나는 예외를 얻을 내가 전체 주소 객체 또는 하나의 필드를 채울 지 여부.

답변

1

연락처의 'rawId'필드를 설정해야한다고 생각합니다. Phonegap 2.1과 Sencha Touch 2.0으로 작업 할 때 안드로이드 장치에 연락처를 저장하는 데에도 문제가있었습니다. "잘못된 인수가있는 유사한 로그 출력이 있습니다. int는 'null'입니다. 연락처의 원시 ID를 설정해야한다는 것을 깨달았을 때 문제가 해결되었습니다.

필자는 기존 연락처를 업데이트하려고하므로 연락처 개체 ID 인 contactToSave를 업데이트하려는 연락처와 동일한 ID로 설정해야합니다. 그러나 contactToSave.save()가 실행될 때 앞서 언급 한 오류가있었습니다.

id뿐만 아니라 contactToSave의 rawId도 전화 번호부의 연락처와 동일하게 설정하면 문제가 사라지고 문제없이 연락처를 업데이트 할 수 있습니다.

새 연락처이므로 어떤 값을 알지는 못했지만 연락처의 rawId를 설정해보십시오.

관련 문제