我已經在iOS Realm DB中創建了簡單的關係數據庫(如存在於其他dbs中)模型。我在哪裏創建了2個獨立的Realm模型(表格)用戶標識符以及其他詳細信息和一個願望清單,其中用戶使用RLMArray
有一系列願望清單。心願單可以包含1個或多個產品,如my previous question。在這個使用用戶ID的模型表中是恆定的,但願望清單表RLMArray
可以更新或刪除。我可以使用領域更新RLMArray
addOrUpdateObject
但是我如何從RLMArray
刪除元素? 例關係數據庫模型如下:領域:如何從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中刪除元素?當他刪除一些活動時更新用戶願望清單?
刪除也是更新,只是把刪除代碼放在'beginWriteTransaction'和'commitWriteTransaction' – Tj3n
是的。我但在更新中,我需要讀取RLMArray然後從索引和'commitWriteTransaction'中刪除。 –