1

オブジェクトマッピングで解決された問題に対する次の質問として、RestKitを0.10.1にアップグレードし、データモデルを次のように拡張しました。

会社は複数の連絡先とアクティビティを持つことができ、連絡先は複数のアクティビティを持つことができますが、1つの会社のみ、アクティビティは1つの会社と1つの連絡先のみを持つことができます。

関係のあるエンティティ

 Company 
 - unitID 
 - companyID
 - matchcode
 - contacts* (Company -->> Contact | 1:n)
 - activities* (Company -->> Activity | 1:n)

 Contact
 - unitID
 - companyID
 - contactID
 - lastName
 - firstName
 - company* (Contact >--> Company | 1:1)
 - activities* (Contact -->> Activity | 1:n)

 Activity
 - unitID
 - activityID
 - companyID
 - contactID
 - subject
 - account* (Activity >--> Company | 1:1)
 - contact* (Activity >--> Contact | 1:1)

JSON(会社)

 [
   {
      "unitID":"003CABD8DEB5DC13C",
      "companyID":"BSP-002999",
      "matchcode":"Testcompany"
   }
 ]

JSON(連絡先)

 [
   {
      "unitID":"DAC2ACCC125795D00",
      "companyID":"BSP-002999",
      "contactID":"CLP-015468",
      "firstName":"Mister",
      "lastName":"Wayne"
   }
 ]

JSON(アクティビティ)

 [
   {
      "unitID":"E123FlADAS2DASD2F",
      "activityID":"ACT-123912",
      "companyID":"BSP-002999",
      "contactID":"CLP-015468",
      "subject":"Testsubject",
   }
 ]

オブジェクトマッピング-接続の設定

 // Objects
 companyMapping.primaryKeyAttribute = @"companyID";
 ...
 contactMapping.primaryKeyAttribute = @"contactID";
 ...
 activityMapping.primaryKeyAttribute = @"activityID";

 // Connections
 [contactMapping mapRelationship:@"company" withMapping:companyMapping];
 [contactMapping connectRelationship:@"company" withObjectForPrimaryKeyAttribute:@"companyID"];

 [activityMapping mapRelationship:@"company" withMapping:companyMapping];
 [activityMapping connectRelationship:@"company" withObjectForPrimaryKeyAttribute:@"companyID"];

 [activityMapping mapRelationship:@"contact" withMapping:contactMapping];
 [activityMapping connectRelationship:@"contact" withObjectForPrimaryKeyAttribute:@"contactID"];


問題

最初の2つのマッピング操作は正常に機能しますが、どういうわけか最後のマッピングアクティビティ>->連絡先は機能しません。

連絡先がありません

それを解決するためのアイデアをありがとう!

4

1 に答える 1

1

Core Dataの設定に誤りがあったため、自力で解決しました。

関係Contact -->> Activityは「optional」に設定されておらず、Xcode と RestKit は明確なエラーを表示しませんでした。「オプション」に設定すると問題が解決し、マッピングはすべての関係で機能します。

于 2012-07-11T09:38:44.670 に答える