微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Swift 3中获取SKSpriteNode的文件名

如何从SKSpriteNode访问图像文件名?我一直试图谷歌这个,但似乎没有答案可用.这是我的代码中无用的部分:
current_ingredient?.name = String(describing: current_ingredient?.texture)

print("Filename: \(current_ingredient?.name)")

print命令返回:

Filename: Optional("Optional(<SKTexture> \'ingredient14\' (110 x 148))")

所以,问题是,我怎么才得到“ingredient14”?

它存储在描述中,所以这里是一个很好的小扩展,我把它撕掉了.
extension SKTexture
{
    var name : String
    {
        return self.description.slice(start: "'",to: "'")!
    }
}

extension String {
    func slice(start: String,to: String) -> String? 
    {

        return (range(of: start)?.upperBound).flatMap 
        { 
          sInd in
            (range(of: to,range: sInd..<endindex)?.lowerBound).map 
            {
                eInd in
                substring(with:sInd..<eInd)

            }
        }
    }
}
usage:

print(sprite.texture!.name)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐