[英]null value passed from a iphone view to another
當我將字符串傳遞給另一個視圖時,我具有空值。 我的代碼是:
在視圖AddBarView.m
,我有以下字符串:
nameAdded = nameField.text; //nameAdded is defined as NSString in AddBarView.h
NSLog(@"namefrom addbarview: %@", nameAdded); OK it works here , NsLog return the textfild
現在在其他視圖中AddLocationController.m
@synthesize nameAdded;
- (void)addViewControllerDidFinish:(AddBarView *)controller
{
AddBarView *controllerAdd;
NSLog(@"namefrom addbarview: %@", controller.nameAdded); //here
[self dismissModalViewControllerAnimated:YES];
}
NSLog
返回一個(空)值。 我的錯在哪里?
提前發送!
您需要按以下方式為nameAdded
字符串分配內存,並使用nameField對其進行初始化。
nameAdded=[[NSString alloc] initWithFormat:@"%@",nameField.text];
編輯將下面的行放在init方法中。
nameAdded=[NSString stringWithFormat:@"%@",nameField.text];
請參閱我的這篇文章,我在此處提供了有關如何將NSString
從一個ViewController
類傳遞到另一個iOS的教程 -將變量傳遞給視圖控制器
nameAdded = nameField.text; 您只保留了價值。 如果以后編輯nameField.text,nameAdded的值也將更改。 您應該復制一份以保留其價值。 nameAdded = [nameField.text復制]; 在AddBarView的viewDidUnload函數中檢查是否已釋放nameAdded。 否則,兩個nameAdded變量是同一對象嗎? 請打印他們的地址。
實際上,您正在分配和初始化保存textField的類。 因此,由於textField也已分配和初始化,因此它將始終返回NULL值。 如果在訪問它的類之前調用了“ AddBarView”類,則可以將其傳遞給該類。 而是在訪問它的類后調用“ AddBarView”,您可能希望將textField值存儲在全局字符串中!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.