Objective c 查找加载到UIImage实例中的映像名称

Objective c 查找加载到UIImage实例中的映像名称,objective-c,iphone,cocoa-touch,Objective C,Iphone,Cocoa Touch,如何找出加载到UIImage实例中的映像名(通常是文件名?)是什么?在本例中,它们都是initWithContentsOfFile:一旦使用它加载,您就不能这样做。文件名仅用于将数据加载到内存中。在那之后,它就变得无关紧要了 如果您需要维护文件名,那么可能需要创建一个文件名(可能是NSString或NSURL)和图像数据(可能是NSImage或NSData对象)为IVAR的类。我不确定你的应用程序是什么,所以我现在不能给你任何架构上的建议 一旦用它加载,你就不能了。文件名仅用于将数据加载到内存中

如何找出加载到UIImage实例中的映像名(通常是文件名?)是什么?在本例中,它们都是
initWithContentsOfFile:

一旦使用它加载,您就不能这样做。文件名仅用于将数据加载到内存中。在那之后,它就变得无关紧要了


如果您需要维护文件名,那么可能需要创建一个文件名(可能是
NSString
NSURL
)和图像数据(可能是
NSImage
NSData
对象)为IVAR的类。我不确定你的应用程序是什么,所以我现在不能给你任何架构上的建议

一旦用它加载,你就不能了。文件名仅用于将数据加载到内存中。在那之后,它就变得无关紧要了


如果您需要维护文件名,那么可能需要创建一个文件名(可能是
NSString
NSURL
)和图像数据(可能是
NSImage
NSData
对象)为IVAR的类。我不确定你的应用程序是什么,所以我现在不能给你任何架构上的建议

不幸的是,你不能只在UIImage上添加一个类别,因为它需要状态。

不幸的是,你也不能只在UIImage上添加一个类别,因为它需要状态。

如果你已经知道图像名称,你可以使用名为:

if (bg.image == [UIImage imageNamed:@"field.jpeg"]) {
    bg.image = [UIImage imageNamed:@"cave.jpeg"];
} else {
    bg.image = [UIImage imageNamed:@"field.jpeg"];
}

在这里,我使用一个按钮在两个图像之间切换。

如果您已经知道图像的名称,可以使用名为:

if (bg.image == [UIImage imageNamed:@"field.jpeg"]) {
    bg.image = [UIImage imageNamed:@"cave.jpeg"];
} else {
    bg.image = [UIImage imageNamed:@"field.jpeg"];
}

在这里,我使用一个按钮在两个图像之间切换。

Ugh。我认为这是一个错误。应该有办法找到这个名字!啊。我认为这是一个错误。应该有办法找到这个名字!