2013-02-09 49 views
0

四处串当我尝试从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>> : "; 
}) 

我怎么从这个字符串(它的文本=“测试”;)

我得到使用该

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

确定的对象,以及在nsmanaged对象是这样的,并设置一个UITableView单元格对应的字符串

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

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

它显示它做什么的原因是因为,正如你所看到的,我得到它的描述。我找不到可以返回文本值的属性,所以有人知道如何?谢谢。

+0

你必须获得实际的'UITextField'并使用它的'text'属性。 – 2013-02-09 22:31:46

+0

我该怎么做 – 2013-02-09 22:37:01

+0

我不知道。这里的信息很少。 – 2013-02-09 22:37:42

回答

1

我假设错误已经发生,当你在管理对象的值。也许你做这样的事情

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

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

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

UPDATE:正如你在评论写,管理对象值存储为

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

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

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

这个字符串存储作为管理对象的“数量”属性。你应该使用下面的代码来代替:

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

请注意,您必须删除旧的数据库测试这个时候摆脱已有的错误条目。

+0

我像这样添加它'NSString * string = [NSString stringWithFormat:@“%@:%@ “,self.numtext,self。comtext]; [newManagedObject setValue:string forKey:@“number”];' – 2013-02-09 22:50:48

+0

如果'self.numtext','self.comtext'是'UITextField'变量,那么你必须使用'[NSString stringWithFormat:@“%@:%@”,self.numtext.text,self.comtext.text] '。 – 2013-02-09 22:53:13

+0

这确实帮了我,我只是注意到我在那里做错了,但它仍然不会显示字符串。 – 2013-02-09 22:59:20

-1

你应该写:

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

编辑:

OK,然后尝试object.number.text;

+0

实体没有文本属性 – 2013-02-09 22:44:13

+0

我试过'object.number'(数字是一个字符串),但仍然不起作用 – 2013-02-09 22:59:53

0
NSString *str = managedObject.objectID.URIRepresentation.absoluteString