gpt4 book ai didi

ios - RealmSwift:void函数中意外的非void返回值

转载 作者:行者123 更新时间:2023-12-01 20:12:19 25 4
gpt4 key购买 nike

我正在尝试从我的领域数据库中查询 token 和user_id,然后传递给我的 private var token 和userId,但是我一直抛出此错误

void函数中非预期的非无效返回值

return particular.id

无法将类型'()'的值分配为类型'Int!'

_userId = getId()
这是我的代码:

import Foundation
import RealmSwift

class Users {
private var _userId: Int!
private var _token: String!

var userId: Int {
_userId = getId()
return _userId
}

func getId () {

guard let userName = Data.sharedInstance.userName else { print("Empty username"); return }

do {
let realm = try Realm()
if let particular = realm.objects(Particulars).filter("username == '\(userName)'").first {
return particular.id
}

} catch let error as NSError {
// handle error
print(error)
}

}
}

因此,我想知道两件事:
  • 为什么会引发此错误?
  • 是否有更好的方法? (即更有效的查询方式)
  • 最佳答案

    您的函数定义为func getId (),这意味着它不返回任何值。然后,您尝试通过return particular.id返回一些内容。您需要将函数定义更改为func getId() -> Int?,然后还添加return nil作为获取失败时的最后一行(与guard语句相同)。

    当然,在nil中调用getId()时,还必须处理该var userId值,或者也将userId更改为可选。

    关于ios - RealmSwift:void函数中意外的非void返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37473204/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com