如何在iOS的Realm中使用主键(目标c)

维格涅什

我宣布电子邮件是Realm模型中的主键。

+ (NSString *)primaryKey
{
   return @"email";
}


- (void)insertUserWithFirstName:(NSString*)firstname lastName:     (NSString*)lastname email:(NSString*)email address:(NSString*)address gender:(NSString*)gender mobile:(NSString*)mobile department:(NSString*)department
{
   RLMRealm *realm = [RLMRealm defaultRealm];
   [realm beginWriteTransaction];

   Employee *employeeInfo = [[Employee alloc]init];
   employeeInfo.firstName = firstname;
   employeeInfo.lastName = lastname;
   employeeInfo.email = email;
   employeeInfo.address = address;
   employeeInfo.gender = gender;
   employeeInfo.mobile = mobile;
   employeeInfo.department = department;

   [realm addObject:employeeInfo];
   [realm commitWriteTransaction];
}

输入重复的电子邮件应用程序后崩溃。

由于未捕获的异常'RLMException'而终止应用程序,原因:'无法将主键属性'email'设置为现有值。

如何在Realm中使用主键?

如何防止这种崩溃?

请帮我。

EI队长v2.0

使用try ... catch处理异常

    RLMRealm *realm = [RLMRealm defaultRealm];
    @try {
             [realm beginWriteTransaction];

             Employee *employeeInfo = [[Employee alloc]init];
             employeeInfo.firstName = firstname;
             employeeInfo.lastName = lastname;
             employeeInfo.email = email;
             employeeInfo.address = address;
             employeeInfo.gender = gender;
             employeeInfo.mobile = mobile;
             employeeInfo.department = department; 
             [realm addObject:employeeInfo];  // [realm addOrUpdateObject:employeeInfo];
             [realm commitWriteTransaction];
     }
     @catch (NSException *exception) {
         NSLog(@"exception");
         if ([realm inWriteTransaction]) {
            [realm cancelWriteTransaction];
         }
     }

正如@Konstantin所建议的那样,您还可以使用[realm addOrUpdateObject:employeeInfo];主键更新数据...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在PostgreSQL中使用哈希方法创建主键

如何在目标c中使用dateformatter解析字符串为日期

如何在目标C中使用具有通用类型的Swift类

如何在Swift Playground中使用Realm?

如何在Realm Swift中使用NOT IN

如何在ios 9,目标C中使用“在当前上下文中”演示以编程方式导航到另一个视图控制器

如何在目标C中使用UIImpactFeedbackGenerator?

如何在Kotlin中使用Realm的in方法

如何在Swift项目中使用目标C框架类?

如何在C#中使用Open CV检测目标上的弹孔

如何在cassandra中使用非主键删除行

如何在目标c-swift桥接项目中使用intentdefinition文件?

如何在SwiftUI中使用Realm

如何在SQL中使用主键变量更新多行

如何在目标C中使用NSPredicate指定范围

如何在Entity Framework中使用主键查找数据?

如何在iOS应用中使用c静态库?

iOS在目标C中使用C ++完成

如何在目标C中使用html保存粗体字体?

如何在Android的“共享首选项”中使用主键?

如何在Realm中实现继承(iOS,目标C)

如何在目标c中使用Realm.io通过主题标签过滤帖子?

确切地讲,在某些情况下如何在目标C中使用nonnull

如何在C中使用cons char函数设置目标C标签

如何在swift3项目中使用目标c视图控制器

如何在objective c ios中使用multipart上传图像?

如何在 Xcode 中使用 iOS 目标?

如何在laravel 8中使用复合主键?

OpenCV:如何在目标 c 中使用凸包?