Инициализатор для условного связывания должен иметь необязательный тип, а не «NSNumber» в Swift - PullRequest
0 голосов
/ 28 октября 2018

Я получаю сообщение об ошибке в следующем коде:

Инициализатор для условного связывания должен иметь необязательный тип, а не 'NSNumber'

if let MId = (M as AnyObject).gid {
    if let id = MId {
       fetchvalue(id, limit: limit, delegate: delegate)
    }
}

1 Ответ

0 голосов
/ 28 октября 2018

Если if let MId завершается успешно, MId не является обязательным (кстати, пожалуйста, назовите переменные с начальной строчной буквой), поэтому второе условное связывание if let является избыточным и вызывает ошибку

if let MId = (M as AnyObject).gid {
    let id = MId 
    fetchvalue(id, limit: limit, delegate: delegate)
}

или даже

if let id = (M as AnyObject).gid {
    fetchvalue(id, limit: limit, delegate: delegate)
}

И не используйте уродливый синтаксис ... as AnyObject).foo, используйте конкретные статические типы Swift.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...