无法设置 UIImage,总是返回 nil

Posted

技术标签:

【中文标题】无法设置 UIImage,总是返回 nil【英文标题】:Unable to set UIImage, always returns nil 【发布时间】:2015-01-17 02:21:18 【问题描述】:

这可能是一个荒谬的问题,但我一辈子都想不通。我有一个 NSObject 子类的类,它有一个名为 image setup 的属性,如下所示:

@property (strong, nonatomic) UIImage *image;

我在其他地方初始化类并尝试在类中设置图像,如下所示:

UIImage *image = [UIImage imageNamed:@"Test"];
Class *item = [[Class alloc] init];
item.image = image;

但是当我尝试调用 item.image 时,它​​总是为零。 名为 Test 的图像在项目中并在其他地方使用,所以我知道它可以访问图像,但由于某种原因,它没有被复制到我的类的实例中。我在设置显示为 nil 的图像以及通过调试器使用命令后直接放置了 NSLog 消息和断点,这些命令也将类中的图像显示为 nil,而我创建的要复制的 UIImage 不是 nil。

我知道我做错了什么,但我已经搜索过但无法弄清楚它是什么。

感谢您的关注,非常感谢您的帮助。

编辑:

我正在尝试从类内部的方法访问图像。

- (void)save 
     if (self.image != nil) 
       // do some stuff
      else 
       NSLog(@"image is nil");
     
   

而且它总是为零。

编辑 2: 再次感谢大家。我弄清楚了问题所在。我正在覆盖导致问题的设置器/获取器。

【问题讨论】:

你如何“调用” item.image?请发布该代码。 您还没有提供足够的信息...例如,您使用什么代码调用save?并且不要只包含一行代码...您如何访问 Class 的更新实例? 尝试包含文件扩展名。此外,根据您运行的设备,您可能需要@2x Retina 版本。我还要确保当您在项目中选择文件时,检查器中的目标旁边有一个复选标记。 @JoshGafni "名为 Test 的图像在项目中并在其他地方使用,所以我知道它可以访问图像" 感谢您的意见,我正在用手机回复此问题,但我会在使用计算机后立即发布更多信息。 【参考方案1】:

它是 .png 文件吗?尝试这样做:

UIImage *image = [UIImage imageNamed:@"Test.png"];

【讨论】:

来自 Apple 文档:“在 ios 4 及更高版本上,如果文件为 PNG 格式,则无需指定 .PNG 文件扩展名。”

以上是关于无法设置 UIImage,总是返回 nil的主要内容,如果未能解决你的问题,请参考以下文章

UIImagePickerController 中的 UIImage 方向问题

AFNetworking 后无法获取 UIImage 大小高度

无法强制解开非可选类型“UIImage”的值

在for循环中将PFFile数组转换为UIImage返回空数组Swift

无法在 Swift 中使用时间延迟为 UIImage 设置动画

无法从 MPMediaItemPropertyArtWork 获取 UIImage