2016-01-07 98 views
2

我有一個應用程序CoreData。一切工作正常,直到我現在使用guide中列出的說明將Google Analytics添加到應用程序。將Google Analytics添加到項目後CoreData方法中的錯誤

我現在能看到錯誤的CoreData方法在AppDelegate

enter image description here

的錯誤是:

'ErrorType' is not convertible to 'NSError'; did you mean to use 'as!' to force downcast? 

我試圖將其更改爲as!甚至消除as NSError沒有運氣。

任何人都知道發生了什麼事?

更新:

我找到了罪魁禍首,但爲什麼它的崩潰仍然沒有想出。當設置了谷歌Analytics(分析)項目,該指南要求您將以下代碼添加到viewWillAppear中的方法在每個視圖控制器:

let tracker = GAI.sharedInstance().defaultTracker 
    tracker.set(kGAIScreenName, value: "name_of_controller") 

    let builder = GAIDictionaryBuilder.createScreenView() 
    tracker.send(builder.build() as [NSObject : AnyObject]) 

最後一行tracker.send(builder.build() as [NSObject : AnyObject])導致構建失敗,上面顯示的錯誤。

+0

你找到一個解決方案? – Ben

+0

我遇到同樣的問題。如果我添加「!」,我可以將錯誤更改爲警告。在「as」之後(在上圖中突出顯示的行中),但我無法解決問題。如果我按原樣保留代碼,或者如果通過添加「!」來更改它,則會出現錯誤。要改變標準的核心數據堆棧代碼似乎不太合適。有沒有可靠的解決方案呢? Google Analytics(分析)代碼是否可以更改以解決問題? – Petra

回答

0

例如

catch var error1 as NSError { 
      error = error1 
      coordinator = nil 
      // Report any error we got. 
      var dict = [String: AnyObject]() 
      dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data" 
      dict[NSLocalizedFailureReasonErrorKey] = failureReason 
      dict[NSUnderlyingErrorKey] = error 
      error = NSError(domain: "YOUR_ERROR_DOMAIN", code: 9999, userInfo: dict) 
      // Replace this with code to handle the error appropriately. 
      // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. 
      NSLog("Unresolved error \(error), \(error!.userInfo)") 
      abort() 
     } catch { 
      fatalError() 
     } 
+0

謝謝伊戈爾。我嘗試過,但沒有奏效。我有點困惑,因爲這是在啓用CoreData時添加到項目中的「標準」代碼。例如,我創建了一個啓用了CoreData的測試項目,它具有完全相同的代碼,沒有任何問題。 你介意解釋你的代碼嗎? –

+0

以及它的標準代碼爲coredata就像你說的,但在你的代碼catch沒有傳遞任何錯誤變量,所以他不認識錯誤var你想要的情況下,如果你修好你的代碼後崩潰請發佈新的崩潰 –

相關問題