如何从数组元素中删除括号
Posted
技术标签:
【中文标题】如何从数组元素中删除括号【英文标题】:How to remove parentheses from array element 【发布时间】:2013-07-12 23:45:48 【问题描述】:我有一个 ios 应用程序,它使用 Core Data 来保存从服务器检索到的信息。我使用基本的获取请求来获取给定entity
的所有managedObjects
。 managedObjects
被放入我用来填充tableViewController
的数组中。表中的每个单元格都有一个UITextField
,我正在尝试将信息放入其中。我可以将数据放入文本字段,但每个元素都带有括号。 我怎样才能摆脱这些,只显示文字?
这是获取请求:
NSManagedObjectContext *moc = self.managedObjectContext;
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"UserInfo" inManagedObjectContext:moc];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
NSArray *objects = [moc executeFetchRequest:request error:&error];
这是我用来填充文本字段的内容:
self.middleNameField.text = [[objects valueForKey:@"firstName"] description];
self.middleNameField.text = [[objects valueForKey:@"middleName"] description];
self.lastNameField.text = [[objects valueForKey:@"lastName"] description];
这是响应的样子
这个问题已被问过几次,但似乎都希望一次显示数组的所有内容而不是特定元素。有人推荐以下方法。
self.firstNameField.text = [[[objects valueForKey:@"firstName"] stringByReplacingOccurrencesOfString:@"(" withString:@""]description];
但是我得到这个异常错误。
-[__NSArrayI stringByReplacingOccurrencesOfString:withString:]: unrecognized selector sent to instance
有人能指出我正确的方向吗?我意识到我可能会走错路。不要犹豫,推荐一种更好的方法来完成相同的任务。 片段真的很有帮助!
【问题讨论】:
【参考方案1】:您的代码返回一个数组,因为您正在向一个数组询问 valueForKey
[对象 valueForKey:@"firstName"]
我建议这样做:
NSArray *objects = [moc executeFetchRequest:request error:&error];
NSManagedObject *object = [objects lastObject];
if (object)
self.middleNameField.text = [object valueForKey:@"firstName"];
self.middleNameField.text = [[object valueForKey:@"middleName"];
self.lastNameField.text = [[object valueForKey:@"lastName"];
如果对象数组为空,您可能希望将这些字段设置为 @""。取决于它们之前是否可以填充。
如果您可以使用为您的模型生成的正确子类,我也不喜欢使用 NSManagedObject *object。假设有问题的类是 Person
Person *person = [objects lastObject];
if (person)
self.middleNameField.text = person.firstName;
【讨论】:
感谢 KHansenSF 的回复!我花了一秒钟才让它工作,因为[objects valueForKey:@"firstName"]
应该是 [object ...]
但是一旦我发现它完美地推出了。很好的解决方案!如果您想详细说明您建议的子类的好处,我很想学习!
你是绝对正确的。我胖手指了那个,并将编辑我的答案。感谢您指出了这一点!对不起,如果这让你慢了!以上是关于如何从数组元素中删除括号的主要内容,如果未能解决你的问题,请参考以下文章