PhoneGap を使用して iPhone/Android に連絡先を保存しています。全体的には機能しているように見えますが、contact() オブジェクト内の contactAddress() オブジェクトに物理アドレスを設定しようとすると、キャッチされない例外がスローされるという最近のクラッシュを追跡しました。
保存しようとしている連絡先で JSON.stringify を実行しました。
{
"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
}
]
}
これを保存しようとすると、例外が発生します。
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)
アドレス オブジェクト全体に入力するか、1 つのフィールドだけに入力するかに関係なく発生するようです。