从NSManagedObject获取字符串

时间:2013-02-09 22:29:15

标签: iphone ios objective-c core-data nsmanagedobject

当我尝试从NSManagedObject获取字符串值时,我得到了这个

<Entity: 0x1e043140> (entity: Entity; id: 0x1e041c30 <x-coredata://8F48C331-B879-47B4-B257-4802A13ED12C/Entity/p4> ; data: {
number = "<UITextField: 0x1d8b7cc0; frame = (159 183; 161 30); text = 'test'; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x1d8b3c10>; layer = <CALayer: 0x1d892a30>> : ";
})

如何从中获取字符串(它是text ='test';)

我使用此

获取对象
NSString *rowValue = [self.fetchedResultsController objectAtIndexPath:indexPath];

好的,nsmanaged对象就是这样,并将uitableview单元格设置为其字符串

NSManagedObject *object = [self.fetchedResultsController objectAtIndexPath:indexPath];

cell.textLabel.text = [[object valueForKey:@"number"] description];

它显示它的作用的原因是因为,正如你所看到的,我得到了它的描述。我找不到会返回文本值的属性,所以有谁知道如何?感谢。

3 个答案:

答案 0 :(得分:1)

我认为当您在托管对象中存储值时,错误已经发生。也许你做的事情就像

[myObject setValue:[aTextField description] forKey:@"number"]

而不是存储文本字段的文本内容:

[myObject setValue:[aTextField text] forKey:@"number"]

更新:在评论中写入时,托管对象值存储为

NSString *string = [NSString stringWithFormat:@"%@ : %@", self.numtext, self.comtext];
[newManagedObject setValue:string forKey:@"number"];

%@ 本身的UITextField格式已扩展为文本字段 description ,而不是文本内容。因此,string已经看起来像

"<UITextField: 0x1d8b7cc0; frame = (159 183; 161 30); text = 'test'; .... "

并且此字符串在托管对象中存储为“number”属性。您应该使用以下代码:

NSString *string = [NSString stringWithFormat:@"%@ : %@", self.numtext.text, self.comtext.text];
[newManagedObject setValue:string forKey:@"number"];

请注意,在测试时必须删除旧数据库以清除已存在的错误条目。

答案 1 :(得分:0)

NSString *str = managedObject.objectID.URIRepresentation.absoluteString

答案 2 :(得分:-1)

你应该写:

Entity *entity = [self.fetchedResultsController objectAtIndexPath:indexPath];
NSString *rowValue = entity.text;

修改

好的,然后尝试object.number.text;