2016-11-06 4 views
-1

У меня есть проект и использовать этот код в моем проекте:как изменить storeCoordinator.addPersistentStoreWithType в быстром 2.2 (XCode 7.3)

if storeCoordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil, error:&error) != nil{ 
    if error != nil{ 
     print(error!.localizedDescription) 
     abort() 
    } 
} 

но в быстром 2.2, это коды имеют ошибки ... Xcode появляется сообщение об ошибке :

Extra argument 'error' in call

и другой код:

class func saveManagedObjectContext(managedObjectContext:NSManagedObjectContext)->Bool{ 

      if managedObjectContext.save(nil){ 
       return true 
      }else{ 
       return false 
      } 
     } 

в этих строках есть некоторые ошибки:

Call can throw, but it is not marked with 'try' and the error is not handled.

и

Argument passed to call that takes no arguments.

ответ

0

Вы должны вложить свой призыв к addPersistentSore... в Do/попробовать/обработчик загвоздка:

do { 
    myNewStore = try storeCoordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil) 
    // other code on success .... 
} 
catch let error as NSError { 
    Swift.print(error!.localizedDescription) 
    abort() 
} 

Вы можете прочитать на Стрижи бросить обработку ошибок/поймать например, здесь: https://www.hackingwithswift.com/new-syntax-swift-2-error-handling-try-catch

Также см. документацию на яблоки https://developer.apple.com/reference/coredata/nspersistentstorecoordinator/1468860-addpersistentstore (обратите внимание, что это Swift 3.0.1)

+0

спасибо ... но вы ответ неправильно. Потому что «попробуйте» не использовать с «if» –

+0

. Я добавил для вас, как взять результат. Вам больше не нужно, если бы это произошло с конструкцией try/catch. – Volker

+0

это нормально .. очень много –

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