2013-07-11 59 views
1

我發現了一個關係錯誤。我嘗試在塊「saveOnSuccess」保存後設置爲我SMUserManagedObject關係,並有一個日誌崩潰:iOS Stackmob SDK(2.0.0)(關係)Bug

*終止應用程序由於未捕獲的異常「SMExceptionIncompatibleObject」,原因是:「沒有屬性發現實體用戶它映射到StackMob上的主鍵。屬性名稱應該匹配以下格式之一:lowercasedEntityNameId或lowercasedEntityName_id。如果User的managed object子類是從SMUserManagedObject繼承的,意思是定義用戶對象,則可以返回上述任何一種格式,或者帶有可選下劃線的小寫字符串與StackMob上的主鍵字段匹配。 它看起來像:

NSManagedObjectContext *context = [[[SMClient defaultClient] coreDataStore] contextForCurrentThread]; 
User *user = [[User alloc] initNewUserInContext:context]; 
[user setUsername:@"username1"]; 
[context saveOnSuccess:^{ 
user.group = group; //an already created object <--- Have a crash 
} onFailure:^{ 
}]; 

在這之後我的「組」模式是被寵壞的。任何嘗試都是失敗。 如果我嘗試設置在其他任何地方一樣的東西:

user.group = group; //Before using saveOnSuccess trick this line work perfectly! 

我有一個崩潰。然後我需要在stackmob「Schema Configuration」中刪除「Group」方案進行修復。 因此,我無法創建具有預設關係的用戶對象。

回答

0

我找到了解決辦法:在我的AppDelegate行「SM_CACHE_ENABLED = YES」使崩潰...

1

你可以做兩件事情之一......

更改您的用戶類從SMUserManagedObject繼承。請參閱Stackmob Core Data Guide中的SMUserManagedObject部分。

或用戶定義類返回主鍵字段名的選擇:

- (NSString *)primaryKeyField 
{ 
    return @"username"; 
} 
+0

當擁有該組關係的另一個用戶登錄時,會發生這種情況。當我爲具有該組的所有用戶註銷時,所有事情都可以正常進行......您知道爲什麼嗎? –

+0

組和用戶之間的反比關係是如何定義的?如果在覈心數據中它是一對一的,那麼你只能有一個用戶與一個組相關聯。 – combinatorial

+0

用戶<<-->集團。似乎我不能改變一些組對象,如果有一些用戶在關係中。當用戶註銷時,一切正常...因此,我無法將某個用戶添加到組中,也不能刪除,因爲其他用戶已登錄並保留該用戶。 –