2012-01-13 5 views
0

UITextField의 텍스트 콘텐츠를 사전에 보낼 때이 오류가 발생합니다.오류 : 'NSInvalidArgumentException', 이유 : '- [__ NSCFString text] :

NSMutableDictionary *newDrink = [[NSMutableDictionary alloc]init]; 
[newDrink setValue:self.nameTextField.text forKey:NAME_KEY]; // error here 

무엇을 할 수 있습니다 :하지만이 코드에 문제가 있는지 볼 수없는 이유는 무엇입니까?

+0

nameTextField는 UITextField입니까, 아니면 NSString입니까? UITextField가 아닌 것 같습니다. – bandejapaisa

답변

-3

self.nameTextField은 0입니다.

확인해보십시오.

또한 수퍼 클래스에서 수퍼 클래스 멤버 변수 또는 속성에 액세스하려고 할 때 수퍼 클래스에서 인스턴스 변수 (해당 경우 이름은 nameTextField)를 만들어 문제가 해결되는지 확인하십시오. As this iPhoneSDK.com thread says "인스턴스 변수를 만들지 않고 속성을 합성 할 때 매우 특정한 문제가됩니다."

+0

Objective-C에서 nil 객체에 대한 메소드를 호출 할 수 있습니다. 응용 프로그램이 중단되지 않습니다. 호출이 무시됩니다. 그러나 개체를 놓은 다음 메서드를 호출하려고하면 EXC_BAD_ACCESS와 충돌합니다! – bandejapaisa

+0

맞습니다. self.nameTextField는 nil입니다. 다른 UIViewController 상속 해요. 그리고이 UIViewController에서 IBOutlet의 UITextField ... 그리고 모든 것이 완벽하게 작동합니다. 그러나이 하위 클래스에서는 nil입니다. 왜? 이 컨트롤러에는 XIB가 없으므로 슈퍼 클래스의 동일한 xib를 사용하고 싶습니다. 내가 상속을하면 IBOutlet과 UITextField 사이의 연결이 끊깁니다? – holydev0tion

+0

답이 잘못되었습니다. 초보자를위한 Objective-C ... 메소드가 객체를 반환하면 nil에 보낸 메시지가 0 (nil)을 반환합니다. http://developer.apple.com/library/ios/documentation/cocoa/conceptual/objectivec/Chapters/ocObjectsClasses.html#//apple_ref/doc/uid/TP30001163-CH11-SW7 –

0

self.nameTextField이 출시되었으며 메모리가 부분적으로 덮어 써서 __NSCFString처럼 보인다고 생각합니다.

nameTextField가 올바르게 유지되는지 확인하십시오.

+0

ARC를 사용하고 있습니다. 나는 nameTextField를 공개하지 않는다. – holydev0tion

관련 문제