UIAlertView
의 텍스트로 넣으려는 NSMutableArray
의 NSString 출력을 기본 텍스트로 사용하고 있습니다.iOS UIAlertView에서 NSString 텍스트를 설정하면 오류가 발생합니다. __NSCFNumber _isNaturallyRTL
사전에서 오는 NSString
에서 NSString
을 다시 만들어야한다는 것을 알았습니다. 그렇지 않으면 'NSInvalidArgumentException'이 만들어집니다. 특히
, 내가 전화 할 때 :
NSMutableArray *serverResponseNumbers;
...
UIAlertView *alertviewmod=[[UIAlertView alloc] initWithTitle:@"Modify" message:nil delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:@"Confirm",nil];
[alertviewmod setDelegate:self];
alertviewmod.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput; //two text fields
[alertviewmod textFieldAtIndex:0].keyboardType=UIKeyboardTypeNumberPad;
NSString *nsRecordNumber=[serverResponseNumbers objectAtIndex:an_int_variable];
...
[alertviewmod textFieldAtIndex:0].text= nsRecordNumber;
나는이 예외가 얻을 :
-[__NSCFNumber _isNaturallyRTL]: unrecognized selector sent to instance 0xde4dbf0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber _isNaturallyRTL]: unrecognized selector sent to instance 0xde4dbf0'
그냥이 (NSLog 그것을 증명 가정) '증명'까지를, 다음 작품 :
NSLog(@"nsRecordNumber=%@",nsRecordNumber);
또는 다음 줄이 잘 작동합니다.
[alertviewmod textFieldAtIndex:0].text= @"static text";
수정 된 내용은 다소 세련되지 않지만 NSString
을 다시 작성하는 것입니다.
int number=[nsRecordNumber integerValue];
NSString *nsNumberRecreated=[NSString stringWithFormat:@"%d",number];
[alertviewmod textFieldAtIndex:0].text= nsNumberRecreated;
하지만이 정말 필요하지 않을한다 :이 해킹을 사용할 수 있도록 내 경우에는이 문자열, 그냥 정수이다. 그리고 나는 '_isNaturallyRTL'이 문서화되지 않은 함수라는 것을 읽었습니다. 아무도 이것을 설명 할 수 있습니까? 아마도 내가 잘못하고있는 것, 또는 버그일까요? 나는 4.6을 사용하고 iOS
4.3을 타겟팅하고 iPad
을 iOS
5.1.1으로 테스트합니다.
중복 가능한 [인스턴스로 보낸 '인식 할 수없는 선택기를 디버깅하는 방법'오류] (http://stackoverflow.com/questions/25853947/how-can-i-debug-unrecognized-selector-sent-to-instance -error) –
NSString을 예상하도록 선언 된'text' 속성을 설정하기 위해 NSNumber를 사용하려고합니다. –
제 사과, NSString 변수 이름 안에 'Number'라는 혼란스러운 변수 이름을 사용했습니다. 그것은 NSString입니다. 숫자 나 NSNumber가 아니며 경고 텍스트 상자에 추가됩니다. – Mark