【问题标题】:Getting string from NSManagedObject从 NSManagedObject 获取字符串
【发布时间】:2013-02-09 22:29:14
【问题描述】:

当我尝试从 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 对象就是 this 并将 uitableview 单元格设置为其字符串

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

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

它显示它的作用的原因是,如您所见,我得到了它的描述。我找不到会返回文本值的属性,所以有人知道怎么做吗?谢谢。

【问题讨论】:

  • 您必须获取实际的UITextField 并使用其text 属性。
  • 我不知道。这里的信息很少。
  • @H2CO3 我编辑了它。我放的东西有帮助吗?
  • 是的,谢谢,但我相信 Levi 已经有了答案。 entity.textField.text 或类似的东西怎么样?

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


【解决方案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%@ 格式本身 被扩展为文本字段描述,而不是文本内容。因此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"];

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

【讨论】:

  • 我这样添加 `NSString *string = [NSString stringWithFormat:@"%@ : %@", self.numtext, self.comtext]; [newManagedObject setValue:string forKey:@"number"];'
  • 如果self.numtextself.comtextUITextField变量,那么你必须使用[NSString stringWithFormat:@"%@ : %@", self.numtext.text, self.comtext.text]
  • 这对我有帮助,我只是注意到我在那里做错了,但它仍然不会显示字符串。
  • 那么object现在的值是多少?
  • 和以前一样,但它保存文本,而不是空
【解决方案2】:
NSString *str = managedObject.objectID.URIRepresentation.absoluteString

【讨论】:

    【解决方案3】:

    你应该写:

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

    编辑:

    好的,那就试试object.number.text;

    【讨论】:

    • 实体没有文本属性
    • 我试过object.number(数字已经是一个字符串)但还是不行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    相关资源
    最近更新 更多