1

我对iOS编程相当陌生,并试图将用户输入字符串从文本字段传递到另一个视图,并使用单例。我的应用程序的目的是让用户输入车辆名称或型号,然后显示 Craigslist 搜索。

在查看了一些 youtube 指南之后,似乎我的代码应该可以工作,但字符串没有被传递,它只显示为 (null)。谁能告诉我出了什么问题?

这些是我的单例文件和与设置和获取字符串相关的代码,我的所有文件都有导入语句GlobalVariables.h

全局变量.h

@interface GlobalVariables : NSObject{

    NSString *globalStr;

}

@property(nonatomic, strong) NSString *globalStr;

+(GlobalVariables *) singleObj;

@end

全局变量.m

@implementation GlobalVariables

@synthesize globalStr;


static GlobalVariables *singleObj = nil;

+ (GlobalVariables *) singleObj{
    @synchronized(self){
        if (singleObj==nil){
            singleObj = [[self alloc]init];
        }
    }
    return singleObj;
}

@end

设置 globalStr 的代码:*nameTextField是用户输入字段

-(IBAction)searchButtonPressed:(id)sender
{
    textToPass = nameTextField.text;
    [self passValues];
}

- (void) passValues{
    GlobalVariables *myVar = [GlobalVariables singleObj];
    myVar.globalStr = textToPass;

}

获取 globalStr 的代码

GlobalVariables* myVar = [GlobalVariables singleObj];
NSString *searchStr = myVar.globalStr;
4

1 回答 1

0

在您的 -passValues 方法中,您可以将其更改为此并检查 textToPass 是否不为零?textToPass 是一个属性吗?

- (void) passValues{

    NSLog(@"textToPass: %@", textToPass);

    GlobalVariables *myVar = [GlobalVariables singleObj];
    myVar.globalStr = textToPass;

}

您的代码可能需要如下所示:

-(IBAction)searchButtonPressed:(id)sender
{
    textToPass = nameTextField.text;
    [self passValues:textToPass];
}

- (void)passValues:(NSString *)text
{
    GlobalVariables *myVar = [GlobalVariables singleObj];
    myVar.globalStr = text;

}
于 2013-10-06T00:36:40.153 回答