领域:如何从RLMArray删除对象?

西德·马特雷(Sid Mhatre)

我已经在iOS Realm数据库中创建了简单的关系数据库模型(就像其他数据库中存在的模型一样)。在这里,我创建了2个单独的Realm模型(表)以及其他详细信息和一个愿望清单,其中用户使用组成了一个愿望清单数组RLMArray我之前的问题一样,愿望清单可以包含1个或更多产品在此具有用户ID的模型表中,该表是恒定的,但是的愿望清单表RLMArray可以更新或删除。我可以RLMArray使用领域进行更新,addOrUpdateObject 但是如何从中删除元素RLMArray关系数据库模型示例如下:

在此处输入图片说明

代码与此类似:

#import <Realm/Realm.h>

@class User;

// User model
@interface User : RLMObject
@property NSString *name;
@property NSString *user_id;
@property RLMArray< Wishlist *>< Wishlist > *wishlist;
@end

// Wishlist model
@interface Wishlist : RLMObject
@property NSString *id;
@property NSInteger *activity;
@property NSInteger *cost;

@end
RLM_ARRAY_TYPE(Wishlist) // define RLMArray<Person>

// Implementations
@implementation User
@end // none needed

@implementation Wishlist
@end // none needed

从领域读取数据:

RLMResults *watchlistDB = [Watchlist allObjects];
WatchlistDB = [realm_data objectAtIndex:index];
RLMArray *realm_array = WatchlistDB.watchlist;

插入新活动:

User *user_realm = [[MyWatchlistDB alloc] init];
user_realm.user_id = _user_id;
user_realm.name = _user_name;
for (NSDictionary *tempDict in activity)
{
    Wishlist *wishlist_realm = [[Wishlist alloc] init];
    newWatchlist.id =[tempDict objectForKey:@"id"];
    newWatchlist.activity =[tempDict objectForKey:@"activity"];
    newWatchlist.cost = [tempDict objectForKey:@"cost"];

    [user_realm.wishlist addObject:newWatchlist];
}
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
[realm addOrUpdateObject:user_realm];
[realm commitWriteTransaction];

如何从RLMArray删除元素?删除用户活动时更新用户的愿望清单?

西德·马特雷(Sid Mhatre)

我如何设法从领域中删除数据。使用RLMArrayaddOrUpdateObject

RLMArray<Wishlist> *wishlist_array = Userdb_realm.wishlist; // reading existing data
User *Userdb = [[User alloc] init];
Userdb.user_id = _Userdb_id;
Userdb.name = _Userdb_name;

for (NSString *temp in delArray)
{
    for (int i = 0; i<[wishlist_array count]; i++) {
        Wishlist *wishlistTodel = wishlist_array[i];
        if ([wishlistTodel.user_id isEqualToString:temp]) {
            RLMRealm *realm = [RLMRealm defaultRealm];
            [realm beginWriteTransaction];
            [wishlist_array removeObjectAtIndex:i];
            [realm commitWriteTransaction];
            break;
        }

    }


}
Userdb.wishlist = wishlist_array;
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
[realm addOrUpdateObject:Userdb];
[realm commitWriteTransaction];

如果有人有更好的解决方案,可以在这里回答。多谢您的回覆。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章