2013-07-12 4 views
0

코어 데이터를 사용하여 서버에서 검색 한 정보를 유지하는 iOS 앱이 있습니다. 나는 주어진 entity에 대해 모든 managedObjects을 잡기 위해 기본 가져 오기 요청을 사용합니다. managedObjects은 배열에 넣어서 tableViewController을 채 웁니다. 표의 각 셀에는 정보를 입력하려는 UITextField이 있습니다. 텍스트 필드에 데이터를 가져올 수 있지만 각 요소에는 괄호가 붙습니다. 어떻게 제거하고 텍스트를 보여줄 수 있습니까?배열 요소에서 괄호를 제거하는 방법

다음
self.middleNameField.text = [[objects valueForKey:@"firstName"] description]; 
self.middleNameField.text = [[objects valueForKey:@"middleName"] description]; 
self.lastNameField.text = [[objects valueForKey:@"lastName"] description]; 

는 응답이

enter image description here

모습입니다 :

여기
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]; 

내가 텍스트 필드를 채우는 데 사용하고 무엇을 : 여기

는 가져 오기 요청입니다

이 질문은 aske입니다. 몇 번이지만 모든 요소가 특정 요소가 아닌 배열의 모든 내용을 한 번에 표시하려고합니다. 일부는 아래의 방법을 권장합니다.

self.firstNameField.text = [[[objects valueForKey:@"firstName"] stringByReplacingOccurrencesOfString:@"(" withString:@""]description]; 

하지만이 예외 오류가 발생합니다.

-[__NSArrayI stringByReplacingOccurrencesOfString:withString:]: unrecognized selector sent to instance 

누군가가 올바른 방향으로 나를 가리킬 수 있습니까? 이 모든 잘못된 방향으로 가고 있을지도 모른다는 것을 알고 있습니다. 동일한 작업을 수행하는 데 더 나은 방법을 권하는 것을 주저하지 마십시오. 스 니펫 정말 도움이됩니다. [ "firstName을"@ valueForKey이 객체]

나는이 제안 : 당신이 valueForKey

에 대한 배열을 요구하고 있기 때문에

답변

1

귀하의 코드는 배열을 반환

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 * 개체를 사용하는 팬이 아닙니다. 해당 클래스가 Person이라고 가정합니다.

Person *person = [objects lastObject]; 
if (person) { 
    self.middleNameField.text = person.firstName; 
+0

답장 KHansenSF! '[object valueForKey : @ "firstName"]'은'[object ...]'이어야하기 때문에 일을 시작하기 위해 잠시 나갔다.하지만 일단 잡히면 완벽하게 굴러 갔다. 훌륭한 솔루션! 서브 클래스의 이점에 대해 자세히 설명하고 싶다면 배울 것을 제안합니다! – Ben

+0

귀하는 정확합니다. 나는 뚱뚱해 그 손가락 하나 내 대답을 편집합니다. 그 점을 지적 해 주셔서 감사합니다! 그리고 그게 너를 늦추면 미안해! – KHansenSF

관련 문제