Я создал простую реляционную базу данных (например, существующую в другой dbs) модели в iOS Realm DB. Где я создал 2 отдельные модели (таблицы) Realm (идентификаторы пользователей) с другими сведениями и списком пожеланий, где пользователь имеет массив списков пожеланий, используя RLMArray
. Список пожеланий может содержать 1 или более продуктов, как в my previous question. В этой таблице моделей с идентификаторами пользователя постоянно, но таблица желаний RLMArray
может быть обновлена или удалена. Я могу обновить RLMArray
с помощью realm 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'. –