2015-10-13 54 views
0

我想更新Realm Objective-C中的特定记录。目前,我还没有发现任何代码提及更新特定记录。请帮助我如何去做。如何更新Realm中的特定记录Objective-C

下面我的代码是在Realm中添加记录。但我想更新关于cpID的记录。

RLMCoachPadItem *RMLCoachPad = [[RLMCoachPadItem alloc]init]; 
RMLCoachPad.cpID = [NSString stringWithFormat:@"%d", results.count+1]; 
RMLCoachPad.cpDescription = _txtMessage.text; 
RMLCoachPad.cpTagId = @""; 


RLMRealm *realm = [RLMRealm defaultRealm]; 
[realm beginWriteTransaction]; 
[realm addObject:RMLCoachPad]; 
[realm commitWriteTransaction]; 
+0

我建议不要使用像Realm一样的类前缀。这是因为在Objective-C中缺少命名空间来避免命名冲突。另外,这是一个通用约定,用于以下划线开始命名变量并在其中放置类前缀,例如, 'ABCCoachPad * coachPad = [ABCCoachPad new]'。 – marius

回答

1

有关如何更新对象here的文档。

例如,从documentation

您也可以部分地通过传递要更新值的 子集,与主键一起更新与主键对象:

// Assuming a "Book" with a primary key of `1` already exists. 
[realm beginWriteTransaction]; 
[Book createOrUpdateInRealm:realm withValue:@{@"id": @1, @"price": @9000.0f}]; 
// the book's `title` property will remain unchanged. 
[realm commitWriteTransaction]; 

假设cpID是您的主键RLMCoachPadItem,并且您想更新说明(cpDescription):

[realm beginWriteTransaction]; 
[RLMCoachPadItem createOrUpdateInRealm:realm withValue:@{@"cpID": @"idOfYourRMLCoachPad", @"cpDescription": @"new description"}]; 
[realm commitWriteTransaction]; 
+0

对于选择器'createOrUpdateInRealm:withValue:' – ppshein

+0

没有已知的类方法RLMCoachPadItem是RLMObject的子类吗? – tilo

+0

yap,当然。 @interface RLMCoachPadItem:RLMObject << – ppshein