【问题标题】:RealmSwift: Unexpected non-void return value in void functionRealmSwift:void函数中的意外非void返回值
【发布时间】:2016-09-25 04:29:08
【问题描述】:

我正在尝试从我的领域数据库中查询令牌和 user_id,然后将其传递给我的私有 var 令牌和 userId,但我不断收到此错误

void 函数中出现意外的非 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)
    }

}
}

所以有两件事我想知道:

  • 为什么会出现这个错误?
  • 有更好的方法吗? (即更有效的查询方式)

【问题讨论】:

    标签: ios swift2 realm


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多