2014-01-10 103 views
-1

任何人都可以解釋爲什麼self.mathFunc.text = null在輸出? 代碼: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) 

回答

4

我猜self.mathfunc是空的,因爲你不能分配的東西給它的屬性。

編輯:

你想在初始化設置一個IBOutlet的財產,但有此時沒有UI。您必須將此代碼移至- (void)viewDidLoad,然後分配IBOutlets

+0

您能不能給這方面的任何解決方案? –

+0

我不知道這種類型的'mathfunc'是,你必須先爲這個屬性創建一個對象,然後才能爲它指定一些東西。 – Herm

+0

'@property(weak,nonatomic)IBOutlet UILabel * mathfunc;' –

2

您必須在分配任何值之前分配self.mathFunc。當您調用initWithValue方法時,如果值是基本類型,則自動類將使用某些默認值創建,然後它將獲得標量值,或者如果包含引用類型對象的類在缺省情況下生成爲(null)。 您可以看到,如果您在initWithValue方法的第一行放置斷點,然後在isa指針的打印說明中您將獲得所有場景。

看到這個鏈接會有所幫助你: - What does isa mean in objective-c?