字符串未转换为 NSURL [SWIFT] [重复]

Posted

技术标签:

【中文标题】字符串未转换为 NSURL [SWIFT] [重复]【英文标题】:String is not convert to NSURL [SWIFT] [duplicate] 【发布时间】:2015-10-02 18:29:29 【问题描述】:

为什么会出现此错误?我粘贴代码,我的第一次尝试在运行时破坏了一个线程。天哪,现在我明白为什么苹果招聘人员问 CS 学生的第一个问题是你知道苹果代码还是“swift”...(meh)

错误提示 - lastPathComponent is available: Use lastPathComponent on NSURL instead

    // get a list of all the png files in the app's images group
    let paths = NSBundle.mainBundle().pathsForResourcesOfType(
        "png", inDirectory: nil) 

    // get image filenames from paths
    for path in paths  
        if !path.lastPathComponent.hasPrefix("AppIcon")  //error
            allCountries.append(path.lastPathComponent)  //error
        
    

尝试 1:

    for path in paths as [AnyObject] 
        if !path.lastPathComponent.hasPrefix("AppIcon") 
            allCountries.append(path.lastPathComponent)
        
    

【问题讨论】:

这是因为我无法在我的 iphone 上使用原始 Xcode 5 进行部署 感谢您的电子邮件。这些应用程序是用 Swift 1.2 编写的,在 Swift 1.2 和 Swift 2.0 之间有许多重大变化。 Xcode 7 需要 Swift 2.0。 您仍然可以将 lastPathComponent 与 NSString 一起使用。只需将 (self as NSString).lastPathComponent 或添加到您的项目中,这样您就不需要更改代码了 【参考方案1】:

使用 URL 相关的 API

if let imageURLs = NSBundle.mainBundle().URLsForResourcesWithExtension("png", subdirectory: nil) 
  // get image filenames from paths
  for url in imageURLs  
    if !url.lastPathComponent!.hasPrefix("AppIcon") 
      allCountries.append(url.lastPathComponent!)
    
  

或有点“更快捷”

if let urls = NSBundle.mainBundle().URLsForResourcesWithExtension("png", subdirectory: nil) 
  allCountries = urls.filter $0.lastPathComponent!.hasPrefix("AppIcon") == false .map $0.lastPathComponent!

【讨论】:

不。我试过了。它没有工作。 if let paths = NSBundle.mainBundle().URLsForResourcesWithExtension( "png", subdirectory: nil) // get image filenames from paths for path in paths as [AnyObject] if !path.lastPathComponent.hasPrefix("AppIcon") allCountries.append(path.lastPathComponent!) 不要转换为 [AnyObject]。按原样使用代码 我收到可选类型“字符串?”的错误值未拆封;你有没有想过使用'!或者 '?'代码if !path.lastPathComponent.hasPrefix("AppIcon") 请使用我的代码! lastPathComponent后面有个感叹号

以上是关于字符串未转换为 NSURL [SWIFT] [重复]的主要内容,如果未能解决你的问题,请参考以下文章

VLCKit 字幕未显示

如何在 Swift 中将此 var 字符串转换为 URL

在 Swift 中将字符串转换为日期 [重复]

Swift - 将字符串转换为在正确日期前一天返回的日期[重复]

在swift 3中将字符串转换为日期类型[重复]

如何在swift(ios)中将字符串格式的日期转换为另一种字符串格式[重复]