簡體   English   中英

從iphone視圖傳遞到另一個的null值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM