检查字符串名称是否与 images.xcassets 中的资产匹配

Check if string name matches an asset in images.xcassets

我 google 的所有内容都会找到关于 ALAsset 的答案。

我有一个 images.xcassets 文件夹和一堆资产。

我想根据字符串知道资产是否存在。

例如if(images.xcassets.contains("assetName") == true)

你知道我如何根据字符串检查资产是否存在吗?

这是检查它的一种方法。

NSString *someString = @"SomeStringFromSomwhere";

 if ([UIImage imageNamed: someString])
 { 
    //the image exists..
 } 
 else
 {
    //no image with that name
 }

判断图片是否存在:Swift 3

if (UIImage(named: "your_Image_name") != nil) {
  print("Image existing")
}
else {
  print("Image is not existing")
}

更实际一点的答案:Swift

if let myImage = UIImage(named: "assetName") {
  // use your image (myImage), it exists!
}

我最终得到了两者的某种组合,并将其变成了一个函数以在我的代码中使用。如果提供的图像丢失,我还想 return 默认图像。 (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)

对于 Swift,这是我最终用来分配现有资产或默认系统图像的内容:

myImageView.image = UIImage(named: "myAssetName") ?? UIImage(systemName: "photo")
// When former is nil, assigns default system image called "photo"