iOS版SDK Stackmob(2.0.0)(关系)的Bug(iOS Stackmob SDK(2

2019-10-18 09:20发布

我发现有关系的严重错误。 我尝试在块“saveOnSuccess”保存后设置为我SMUserManagedObject关系,并有一个日志崩溃:

*终止应用程序由于未捕获的异常“SMExceptionIncompatibleObject”,原因是:“没有属性发现它映射到StackMob主键实体用户。 属性名应当符合下列格式之一:lowercasedEntityNameId或lowercasedEntityName_id。 如果用户被管理对象的子类从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“模式配置”方案进行维修。 所以,我不能创建预置关系的用户对象。

Answer 1:

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

更改用户类继承SMUserManagedObject 。 见在SMUserManagedObject部分Stackmob核心数据手册 。

或用户定义类返回主键字段的名称的选择:

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


Answer 2:

我发现了一个解决方案:在我的AppDelegate行“SM_CACHE_ENABLED = YES”使崩溃......



文章来源: iOS Stackmob SDK(2.0.0) (relationships) Bug