2014-09-21 78 views
3

我的應用程序有一個今日小工具,但我已經被告知有關它的一個問題。今日小工具擴展插件的問題

基本上,似乎發生(我不能對此進行測試爲自己)是小部件有時會只顯示「無法加載」和其他時候它會只是0

高度顯示

我真的不明白爲什麼會發生這種情況。我已經在我的設備和模擬器上測試了數週,並且從未遇到過這個問題。

我在想,如果它可能是下到刷新代碼:

func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)!) { 
    // Perform any setup necessary in order to update the view. 

    var defaults = NSUserDefaults(suiteName: "group.AffordIt") 
    var newCheck = defaults.boolForKey("new") 

    if newCheck == true { 
     completionHandler(NCUpdateResult.NewData) 
    } else { 
     completionHandler(NCUpdateResult.NoData) 
    } 
} 

「newCheck」不管什麼時候我的應用程序需要被顯示在小部件中的變化是真實的。

有誰知道這些問題的可能原因是什麼?

回答

1

你使用自己的視圖控制器和XIB而不是使用故事板?如果是的話,那很可能是因爲你沒有在視圖控制器中設置preferredContentSize。

嘗試把下面的代碼在烏爾視圖控制器的初始化函數:

self.preferredContentSize = CGSizeMake(320, 100); 

我剛開始擴展編程,所以今天我不知道是不是爲u或不真的很有幫助。下面是結果在我自己的小工具:

enter image description here

2

「無法加載」消息出現時,如果您的分機經常崩潰。您可以嘗試通過再次刪除和添加擴展來重新啓用它。

+0

我發佈了更新到我的應用程序來解決另一個bug。我根本沒有修改Widget代碼,它似乎已經修復它,所以也許它是一個iOS 8的錯誤。如果用戶嘗試使用該小部件,但仍未打開該應用程序,仍會顯示'無法加載'錯誤。那麼有什麼方法可以改變這個訊息嗎? – user3746428 2014-10-02 16:35:23

+0

@ user3746428你可以創建一個'NSUserDefaults'鍵(Google如何閱讀應用程序和小部件之間的共享默認值),它是一個簡單的'BOOL',指示你的應用程序是否先運行。當你的應用程序啓動時檢查鍵,如果它是'假'顯示一條消息告訴用戶先運行應用程序。 – Maurizio 2014-12-27 20:57:55

0
  1. 編輯在今天的擴展按鈕
  2. 刪除您的擴展
  3. 再次添加您的擴展。