Если 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.