有没有解释为什么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](null)
答案 0 :(得分:1)
潜在原因:
您的ExtratoDeNotasSideMenuViewController init
已退回nil
,因为初始化期间出错。
NSLog(@"%@", extratoDeNotasSideMenuViewController); // Does this display '(null)'?
您的userImageView
尚未初始化,因为您未在ExtratoDeNotasSideMenuViewController init
初始化它。
NSLog(@"%@", extratoDeNotasSideMenuViewController.userImageView); // Does this display '(null)'?
您的image
为nil
,因为您没有名为Icone_SideBar.png的图片。
您应该添加NSLog
语句或添加断点并使用po
来检查对象。
修改强>:
如果要在创建视图之前在视图控制器上设置某些内容(或者如果您希望视图控制器销毁其视图然后在某个时刻重新创建视图创建之间的持久性事物),则应使用属性。 / p>
请考虑以下事项:@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"];