检查字符串名称是不是与 images.xcassets 中的资产匹配
Posted
技术标签:
【中文标题】检查字符串名称是不是与 images.xcassets 中的资产匹配【英文标题】:Check if string name matches an asset in images.xcassets检查字符串名称是否与 images.xcassets 中的资产匹配 【发布时间】:2015-04-30 17:22:52 【问题描述】:我在 Google 上搜索到的所有内容都会找到关于 ALAsset 的答案。
我有一个 images.xcassets 文件夹和一堆资产。
我想根据字符串知道其中是否存在资产。
例如if(images.xcassets.contains("assetName") == true)
你知道如何根据字符串检查资产是否存在吗?
【问题讨论】:
我不确定如何具体执行此操作,但我只会使用您正在检查的资源图像名称创建一个 UIImage,如果 UIImage 为 nil,那么您知道该资源不可用并且可以试试别的。 【参考方案1】:这是检查它的一种方法。
NSString *someString = @"SomeStringFromSomwhere";
if ([UIImage imageNamed: someString])
//the image exists..
else
//no image with that name
【讨论】:
【参考方案2】:检查图像是否存在:Swift 3
if (UIImage(named: "your_Image_name") != nil)
print("Image existing")
else
print("Image is not existing")
【讨论】:
【参考方案3】:只是一个更实际的答案:Swift
if let myImage = UIImage(named: "assetName")
// use your image (myImage), it exists!
【讨论】:
【参考方案4】:我最终得到了两者的某种组合,并将其变成了一个在我的代码中使用的函数。如果提供的图像丢失,我还想返回默认图像。 (Swift 4 版本)
func loadImage (named: String) -> UIImage
if let confirmedImage = UIImage(named: named)
return confirmedImage
else
return UIImage(named: "Default_Image.png")
然后要将图像加载到按钮之类的东西中,你可以这样做。
buttonOne.setImage(loadImage(named: "YourImage.png"), for: .normal)
【讨论】:
【参考方案5】:对于 Swift,这是我最终用来分配现有资产或默认系统映像的方法:
myImageView.image = UIImage(named: "myAssetName") ?? UIImage(systemName: "photo")
// When former is nil, assigns default system image called "photo"
【讨论】:
以上是关于检查字符串名称是不是与 images.xcassets 中的资产匹配的主要内容,如果未能解决你的问题,请参考以下文章