在输出中为空

时间:2014-01-10 10:23:04

标签: objective-c

任何人都可以解释为什么self.mathFunc.text = null在输出中? 代码:

-(id) initWithValue:(NSString *) value {
    self = [self init];
    NSLog(@"value %@",value);
    self.mathfunc.text  = value;
    NSLog(@"self.mathFunc.text %@",self.mathfunc.text);
    [self setLabel];
    return self;
}

,输出

014-01-10 15:18:09.566 MathRacer[1573:a0b] value Div
2014-01-10 15:18:09.568 MathRacer[1573:a0b] self.mathFunc.text (null)

2 个答案:

答案 0 :(得分:5)

我猜self.mathfunc为空,因此您无法为其属性分配内容。

编辑:

您正在尝试在初始化中设置IBOutlet的属性,但此时没有UI。您必须将此代码移至- (void)viewDidLoad,然后分配IBOutlets

答案 1 :(得分:2)

在为其分配任何值之前,您必须分配self.mathFunc。当你调用initWithValue方法时,如果值是原始的,则自带类创建一些默认值,然后它获得标量值,或者如果类包含引用类型对象,则默认情况下它生成为(null)。 您可以看到是否在initWithValue方法的第一行放置了断点,然后在isa指针的打印描述中,您将获得所有方案。

查看此链接会对您有所帮助: - What does isa mean in objective-c?