我有一个奇怪的问题,试图从一个viewcontroller传递一个字符串到另一个视图控制器,如果字符串来自UITextview而不是UITextfield。 UITextview.text和UITextfield.text都是NSString类型。UITextView问题
下面的代码根据fieldType采用Textfield.text或Textview.text,并将其放入一个名为aString的字符串中。
NSString *aString = [[NSString alloc] init];
if (fieldType == 3) {
aString = textView.text;
} else {
aString = textField.text;
}
当我在任何情况下检查aString时,我可以看到它已成功地将文本分配到aString中。
然后我使用这段代码将字符串传递给其他视图控制器。
[delegate updateSite:aString :editedFieldKey :fieldType];
[self.navigationController popViewControllerAnimated:YES];
此工作正常,如果ASTRING起源的TextField.text但什么也没有发生,除了视图控制器如果ASTRING来自textview.text
这是需要ASTRING和做的东西与它的代码被弹出,但它甚至不执行第一行代码“NSLog(@”返回对象:%@,字段类型:%@“,aString,editedFieldKey);”如果aString来自textview.text任何帮助将不胜感激。
-(void)updateSite:(NSString *)aString :(NSString *)editedFieldKey :(int)fieldType {
NSLog(@"Returned object: %@, field type:%@", aString,editedFieldKey);
switch (fieldType) {
case 0: //string
[aDiveSite setValue:aString forKey:editedFieldKey] ;
NSLog(@"String set %@",[aDiveSite valueForKey:editedFieldKey]);
break;
case 1: //int
[aDiveSite setValue:[NSNumber numberWithInt:aString.intValue] forKey:editedFieldKey];
NSLog(@"Integer set");
break;
case 2: //float
NSLog(@"Saving floating value");
[aDiveSite setValue:[NSNumber numberWithFloat:aString.floatValue] forKey:editedFieldKey];
NSLog(@"Float set");
break;
case 3: //Text view
[aDiveSite setValue:aString forKey:editedFieldKey];
NSLog(@"Textview text saved");
default:
break;
}
[self.tableView reloadData];
}
你”重新泄漏aString。你应该替换“NSString * aString = [[NSString alloc] init];”与“NSString * aString;” – 2010-06-17 07:25:47