【问题标题】:deleteObject doesn't work in RealmdeleteObject 在 Realm 中不起作用
【发布时间】:2015-04-06 09:51:30
【问题描述】:

这是我的代码,我不知道我做错了什么。我正在按照文档中的说明进行操作 http://realm.io/docs/cocoa/0.91.1/#deleting-objects

       // Delete Current Object
        RLMRealm *realm = RLMRealm.defaultRealm;

        [realm beginWriteTransaction];
        EBooks *eBookdb = [[EBooks alloc]init];
        eBookdb.eBook_ID = [NSString stringWithFormat:@"%@",self.eBookID];
        eBookdb.status = @"canceled";
        [EBooks createOrUpdateInRealm:realm withObject:eBookdb];

        [realm commitWriteTransaction];

        //=> break point here before crash      

        [realm beginWriteTransaction];
        [realm deleteObject:eBookdb];
        [realm commitWriteTransaction];

应用程序在断点后崩溃并出现以下错误

'只能从它所属的 Realm 中删除一个对象。'

【问题讨论】:

    标签: ios objective-c ios7 realm


    【解决方案1】:

    问题是您试图删除独立的EBooks 对象,而不是保留在领域中的对象。如果您将代码更改为以下内容,它应该可以工作:

    // Delete Current Object
    
    
    RLMRealm *realm = RLMRealm.defaultRealm;
    
    [realm beginWriteTransaction];
    EBooks *eBookdb = [[EBooks alloc]init];
    eBookdb.eBook_ID = [NSString stringWithFormat:@"%@",self.eBookID];
    eBookdb.status = @"canceled";
    eBookdb = [EBooks createOrUpdateInRealm:realm withObject:eBookdb];
    
    [realm commitWriteTransaction];  
    
    [realm beginWriteTransaction];
    [realm deleteObject:eBookdb];
    [realm commitWriteTransaction];
    

    【讨论】:

    • 这是我当前的代码pastebin.com/N8VhTG7M 但我现在收到新错误** 由于未捕获的异常“RLMException”而终止应用程序,原因:“索引超出范围。”***
    • 对不起,错误是由于不同的问题引起的。谢谢:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    相关资源
    最近更新 更多