当我尝试从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];
它显示它的作用的原因是因为,正如你所看到的,我得到了它的描述。我找不到会返回文本值的属性,所以有谁知道如何?感谢。
答案 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;