我是ios新手。我使用了firebase google和facebook认证,注册时获得了当前用户的photourl。我使用PINRemoteImage library来获取图像并将其设置为imageview,但是在测试时,我得到了以下错误。
Domain=NSCocoaErrorDomain Code=264 "The file “photo.jpg” couldn’t be opened because the text encoding of its contents can’t be determined." UserInfo={NSURL=https://lh6.googleusercontent.com/-VImwCn8xJng/AAAAAAAAAAI/AAAAAAAAAAc/Qlp17u7Qxzs/s96-c/photo.jpg}
下面是访问图像的代码:

let userInfo = network.getCurrentUserDate()
        setTextFields(userInfo: userInfo)


func setTextFields(userInfo:UserData){
        do{
            try profileImage.pin_setImage(from: URL(string: String(contentsOf: userInfo.getImageUrl()))!)
        }catch{
            print(error)
        }
    }

这里network是以下类的对象
class Networking{
    func getCurrentUserDate()->UserData{
        let currentUser = Auth.auth().currentUser
        return UserData(username: (currentUser?.displayName)!, email:
        (currentUser?.email)!, url: (currentUser?.photoURL)!)
    }
}

//Here userinfo is object of following class

class UserData{
    var userName:String
    var useremail:String
    var imageUrl:URL

    init(username:String,email:String,url:URL) {
        userName = username
        useremail = email
        imageUrl = url
    }

    func getuserName() -> String {
        return userName
    }

    func getEmail() -> String {
        return useremail
    }

    func getImageUrl() -> URL {
        return imageUrl
    }
}

有人能告诉我我的密码有什么问题吗

最佳答案

首先,您根本不需要get...()方法,只需使用userInfo.imageUrl即可获得值

class UserData {
    var userName: String
    var useremail: String
    var imageUrl: URL

    init(username: String, email: String, url: URL) {
        userName = username
        useremail = email
        imageUrl = url
    }
}

如果你声明UserDatastruct你甚至不需要初始化器
struct UserData {
    var userName, useremail: String
    var imageUrl: URL
}

如果三个属性/成员不会更改,则将它们声明为常量
struct UserData {
    let userName, useremail: String
    let imageUrl: URL
}

出现此错误的原因是在给定的URL处没有String,图像将保存为rawData
直接使用imageUrl,将setTextFields更改为
func setTextFields(userInfo: UserData) {
    do {
        try profileImage.pin_setImage(from: userInfo.imageUrl)
    } catch {
        print(error)
    }
}

关于swift - ios swift:“无法打开文件“photo.jpg”,因为无法确定其内容的文本编码。”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54181428/

10-14 03:52