2015-06-09 4 views
0

Я пытаюсь обновить свой проект для работы с Xcode 7.0 и после обновления моих проектов Swift у меня появляется ошибка, которую я не понимаю в этой строке.Xcode 7.0 Проблемы с быстрым обновлением

let jsonData:NSDictionary = NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers) as! NSDictionary 

Ошибка

«Вызов может бросить, но он не отмечен„попробовать“, и ошибка не обрабатывается»

Я также получаю эти две ошибки в мои файлы проекта ...

"команда линкер потерпела неудачу с кодом выхода 1 (использование -v, чтобы увидеть вызова)"

и

"Ошибка: не удается разобрать карту отладки для"/Users/MattFiler/Library/Developer/Xcode/DerivedData/ePlanner-cqwzlxqgpwaloubjgnzdlomjkfea/Build/полупродукты/SwiftMigration/ePlanner/Продукты/Debug-iphonesimulator/ePlannerTests .xctest/ePlannerTests ": нет такого файла или каталога"

ответ

1

Попробуйте этот код:

do { 
    let jsonData = try NSJSONSerialization.JSONObjectWithData(urlData!, options: .MutableContainers) as! NSDictionary 
    // Use jsonData here 
} catch { 
    print("Well something happened: \(error)") 
} 

Вам потребуется try ключевое слово, как NSJSONSerialization.JSONObjectWithData Теперь выдает ошибку, если что-то не удалось, так как Swift 2. Функции Бросив должны быть отмечены try или try!.

Также вам понадобится do { ... } catch, чтобы поймать любые ошибки, которые могут возникнуть. Это поймает ошибку и обработает ее.

Возможно, вы захотите прочитать на changes in Swift 2, чтобы понять, почему это произошло. Также видео WWDC будут очень полезны.

+0

Полезно, спасибо. Я не знаю, почему они должны обновлять язык, это раздражает для таких учеников, как я. – MattFiler

+0

@MattFiler Не забудьте принять ответ, если он решит вашу проблему и повысит ее, если она превысит ваши ожидания. – vrwim

+0

Сделали, спасибо! Я также использую UIWebView в своем проекте, и теперь я получаю ошибку «Ошибка загрузки NSURLSession/NSURLConnection HTTP (kCFStreamErrorDomainSSL, -9802)» после обновления Xcode. Вы знаете, что может быть причиной этого? Он работал абсолютно нормально, но теперь он не будет загружать мои веб-страницы. – MattFiler

1

Вам нужно попробовать и поймать, если он выдает сообщение об ошибке.

do { 
    let jsonData:NSDictionary = try NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers) as! NSDictionary 
    //... 
} 
catch { 
} 
+0

Я пробовал это раньше, но потом в коде я получаю ошибки, говорящие, что переменная является «неразрешим идентификатором», когда я пытаюсь вызвать «jsonData». – MattFiler

+0

Вы использовали 'jsonData' внутри блока' do'? –

Смежные вопросы