为什么价值突然变为零?

时间:2016-04-02 14:24:52

标签: ios swift image

我正在开展一个项目,我希望获得特定标识符的图像。我有以下功能:

posix

...和func imageForIdentifier(identifier: String?) -> UIImage? { if identifier == nil || identifier! == "" { return nil } let directory = directoryForID(identifier!) if let img = imgInCache.objectForKey(identifier!) as? UIImage { return img } if let img = NSData(contentsOfFile: directory) { return UIImage(data: img) } return nil } 功能......

directoryForID

如果我传递一个图像标识符,它应该创建一个目录,在最后一个if-Statement中它应该从该目录返回func directoryForID(identifier: String) -> String { let directoryPath: NSURL = NSFileManager.defaultManager().URLsForDirectory(NSSearchPathDirectory.DocumentationDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask).first! return (directoryPath.URLByAppendingPathComponent(identifier).path!) } 个数据。但是它会跳过所有if-Statements并返回nil。即使我传递了正确的标识符,这怎么可能?

提前谢谢。

2 个答案:

答案 0 :(得分:0)

原因在于您如何测试字符串对象标识符 nil-ability 空白

identifier.length可以帮助验证标识符的内容......

答案 1 :(得分:0)

编辑回答。

func imageForIdentifier(identifier: String?) -> UIImage? {

    guard let identifier else { return }

    let directory = directoryForID(identifier)
    if let img = imgInCache.objectForKey(identifier) as? UIImage {
        return img
    }
    if let img = NSData(contentsOfFile: directory) {
        return UIImage(data: img)
    }
    return nil
}