-4

我正在尝试使另一个视图中的字符串等于是。我这样做了:

reset = @"Yes";
NSLog(@"resetString is %@", reset);

上面的 NSLog 等于 Yes。

在我的第二种观点中,它应该检查它是否等于是并做一些事情。

ScoreViewController *svc = [[ScoreViewController alloc] init];
    if ([svc.reset isEqualToString:@"Yes"])
    {
        selectedQuestion.questionCompleteOrNot = @"No";
        NSLog(@"resetString is %@", svc.reset);
    }
    else
    {
        selectedQuestion.questionCompleteOrNot = @"Yes";
        NSLog(@"resetString is %@", svc.reset);
    }

上面的两个 NSLog 等于 Null,当它们应该等于 Yes 时,它会对 selectedQuestion.questionCompleteOrNot 属性做一些事情。

有人知道吗?

4

2 回答 2

1

这将创建您的ScoreViewController类的一个新实例:

 ScoreViewController *svc = [[ScoreViewController alloc] init];

我的猜测,您实际上并没有为您的 property 设置默认值reset。因此,您可能需要在您ScoreViewControllerinit:方法中执行以下操作:

- (id)init
{
    self = [super init];
    if (self)
    {
        _reset = @"Yes";
       // set other default values here...
    }
    return self;
}

另外,如果你需要复习 iOS 开发的基础知识,我强烈推荐 Ray Wenderlich 的网站,它有很多高质量的教程:

http://www.raywenderlich.com/

祝你好运!

编辑

顺便说一句,如果ScoreViewController实际上是 的子类UIViewController,则您可能使用了错误的 init 方法...相反,您可能应该使用-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil方法...这是UIViewController文档的链接,它也应该有所帮助:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

于 2012-12-31T20:11:57.840 回答
0

检查您是否在不同的代码块中分配值。(代码块 = 以 {} 开头和结尾)如果您在不同的块中实例化变量或赋值,它将不起作用。

于 2012-12-31T21:10:37.003 回答