我有一個iPhone應用程序,我想維護用戶的配置文件信息。 我也有一個朋友的列表。如何確保核心數據實體的單個實例
配置文件中包含的信息字段與朋友的信息字段相同。
我有一個朋友的核心數據實體。
我應該爲個人資料製作一個單獨的實體還是僅使用朋友實體。
如果我使用單獨的實體,我如何確保只有一個配置文件實例。
如果我使用朋友實體,我如何確保在爲朋友表視圖獲取朋友列表時不顯示個人資料信息。
在此先感謝。
我有一個iPhone應用程序,我想維護用戶的配置文件信息。 我也有一個朋友的列表。如何確保核心數據實體的單個實例
配置文件中包含的信息字段與朋友的信息字段相同。
我有一個朋友的核心數據實體。
我應該爲個人資料製作一個單獨的實體還是僅使用朋友實體。
如果我使用單獨的實體,我如何確保只有一個配置文件實例。
如果我使用朋友實體,我如何確保在爲朋友表視圖獲取朋友列表時不顯示個人資料信息。
在此先感謝。
你怎麼樣讓一個表屬性,如
Name (NSString)
...
//your desired attributes which are common to both
isFriend (BOOL)//to keep track of profile type
這樣你就不需要做兩個實體。
您應該重新思考自己的命名約定,以便更容易地查看對象模型。
有辦法我看到它,你有一個名爲'成員'的實體,包含你現在擁有的所有屬性,加上一個多對多的「isFriend」與自身的關係。
這樣,任何「朋友」都可以成爲「個人資料」,任何「個人資料」都可以成爲「朋友」。它也會使你非常直接地實例化一個'成員'對象並把它所有的'朋友'拉下來。
至於確保只有一個配置文件的實例,你將需要每個實例的唯一標識符 - 沒有太多的背景知道你想要達到什麼目的,我建議你考慮擁有一個用戶名或電子郵件地址字段,您可以使用它作爲參數執行fetchRequest,並在允許成員註冊/創建新配置文件之前查看是否獲得任何現有匹配。
好的!謝謝。如何根據字段進行提取請求。例如。獲取所有名稱=「我的名字」(我的個人資料)。所以我可以填充只有朋友的列表? – klyngbaek 2011-02-23 10:08:32
這裏粗略地說,如果你有一個myName字符串,你不想獲取的名字 - 「NSFetchRequest * fetchRequest = [[NSFetchRequest alloc] init]; NSPredicate * predicate = [NSPredicate predicateWithFormat:@「(name!=%@)」,myName]; [fetchRequest setPredicate:predicate]; NSEntityDescription * entity = [NSEntityDescription entityForName:@「Member」inManagedObjectContext:self.managedObjectContext]; [fetchRequest setEntity:entity]; NSError * error; NSArray * arrayOfObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];' – Rog 2011-02-23 10:17:45