2014-10-28 59 views
-1

是否有任何解釋爲什麼運行此代碼時NSLog始終顯示爲空?價值轉移問題

ExtratoDeNotasSideMenuViewController *extratoDeNotasSideMenuViewController = [[ExtratoDeNotasSideMenuViewController alloc] init]; 
extratoDeNotasSideMenuViewController.userImageView.image = [UIImage imageNamed:@"Icone_SideBar.png"]; 
NSLog(@"%@", extratoDeNotasSideMenuViewController.userImageView.image); 

2014年10月28日13:40:50.594 E-proinfo [913:51418](空)

+0

通過 「返回」 你的意思是 「顯示」?如果'NSLog()'顯示「null」,這是因爲'extratoDeNotasSideMenuViewController.userImageView.image'爲'null'。所以也許這個問題應該是「爲什麼'extratoDeNotasSideMenuViewController.userImageView.image'返回'null'? – zaph 2014-10-28 15:57:22

+0

也許是因爲userImageView是零 – kabarga 2014-10-28 15:58:00

回答

1

可能的原因:

  • ExtratoDeNotasSideMenuViewController init返回nil因爲有一個初始化過程中發生錯誤。

    NSLog(@"%@", extratoDeNotasSideMenuViewController); // Does this display '(null)'? 
    
  • userImageView因爲你不ExtratoDeNotasSideMenuViewController init初始化它尚未初始化。

  • imagenil,因爲你沒有一個名爲Icone_SideBar.png的圖像。

您應該添加NSLog陳述或者添加斷點,並使用po瞭解你的對象。

編輯: 如果您要設置您的視圖控制器上的東西在創建視圖之前(或視圖創作之間的持久的事情,如果你希望你的視圖控制器銷燬其視圖,然後在某個時候重新創建),你應該使用一個屬性。

考慮以下幾點:

@interface ExtratoDeNotasSideMenuViewController 
@property (strong) UIImage *myUserImage; 
... 
@end 

@implementation ExtratoDeNotasSideMenuViewController 
... 
- (void)loadView { 
    [super loadView]; 
    ... 
    [self.userImageView setImage:self.myUserImage]; 
    ... 
} 
... 
@end 

... 
    ExtratoDeNotasSideMenuViewController *extratoDeNotasSideMenuViewController = [[ExtratoDeNotasSideMenuViewController alloc] init]; 
    extratoDeNotasSideMenuViewController.myUserImage = [UIImage imageNamed:@"Icone_SideBar.png"]; 
+0

當運行 NSLog(@「%@」,extratoDeNotasSideMenuViewController); 2014年10月28日14:08:18.015 E-proinfo [1026:194071] 被顯示 當運行 的NSLog(@ 「%@」,extratoDeNotasSideMenuViewController.userImageView); 2014-10-28 14:08:18.015 E-proinfo [1026:194071](null) 顯示爲 – 2014-10-28 16:09:07

+0

因此,第二個項目符號應用...您的'userImageView'爲'nil',因爲您沒有初始化它在你的視圖控制器的'init'中。你可能在你的'viewDidLoad'或'loadView'中初始化它,這兩者都不會被調用。 – 2014-10-28 16:12:40