检查字符串名称是不是与 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 中的资产匹配的主要内容,如果未能解决你的问题,请参考以下文章

如何检查字符串是不是是有效的 XML 元素名称?

请检查具有相同名称的管道是不是先前已提交到不同的端点

检查值是不是在数组中(C#)

如何检查输入值是不是与数组中的任何值匹配

用于检查名称是不是以元音开头和结尾的 SQL 查询

当我只知道部分名称时检查是不是存在临时表?