68

Swift の Today Extension を Objective-C アプリに追加しようとしています。デバッガー ログに次のメッセージが表示され続けます: Failed to inherit CoreMedia permissions from 3005: (null)。番号ex。3005は毎回違います。ウィジェット内から NSUserDefaults を読み取っていますが、アプリ自体で読み取り/書き込みを行っています。私の TodayViewController の唯一のコードは次のとおりです。

override func viewDidLoad() {
    super.viewDidLoad()

    let formatter = NSNumberFormatter()
    formatter.numberStyle = .CurrencyStyle
    totalLabel.text = formatter.stringFromNumber(0)
    coinsLabel.text = formatter.stringFromNumber(0)

    formatter.maximumFractionDigits = 0
    billsLabel.text = formatter.stringFromNumber(0)

}

func widgetMarginInsetsForProposedMarginInsets(defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets {
    return UIEdgeInsetsMake(8.0, 16.0, 8.0, 16.0)
}

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

    // If an error is encountered, use NCUpdateResult.Failed
    // If there's no update required, use NCUpdateResult.NoData
    // If there's an update, use NCUpdateResult.NewData

    completionHandler(NCUpdateResult.NewData)
}
4

15 に答える 15

53

「NNNN から CoreMedia アクセス許可を継承できませんでした」という警告は、アプリ拡張機能を作成するときのアプリ グループに関連していると思います。含まれているアプリケーションとアプリ拡張機能の両方でアプリ グループ機能をオンにし、同じアプリ グループ コンテナー ID (例: group.com.yourdomain.yourappname) を使用する必要があります。アプリ グループを使用して、複数のアプリが共有コンテナーにアクセスできるようにし、アプリ間の追加のプロセス間通信を許可します。

機能は次のようになります

于 2014-09-29T16:14:18.473 に答える
16

まず、クリックしてくださいAssets.xcassets

まず、Assetes.xcassets をクリックします。

次に、[ターゲット メンバーシップ] をクリックし、アプリとウィジェットの両方をチェックして、ウィジェットがリソースにアクセスできるようにします。

次に、[ターゲット メンバーシップ] をクリックします。

その後、ウィジェットを再度実行すると、正常に動作するはずです。

于 2016-03-04T11:05:12.210 に答える
14

同じログ出力がありました。クリーニング(Cmd + Shift + K)で解決しました。

于 2014-10-29T13:10:26.463 に答える
9

私もその問題に遭遇しました。私が解決した唯一の解決策は、ストーリーボード上のすべてのオブジェクトに垂直および水平の制約を追加することでした。

于 2015-02-24T10:34:23.557 に答える
4

非常に誤解を招くエラー。上記のとおりです。ビュー コントローラーを選択し、不足している制約を追加するか、自分自身に制約を追加して問題を修正します。

ここに画像の説明を入力

于 2015-11-13T11:57:13.400 に答える
3

StoryBoard を使用している場合は、info.plist に移動してプロパティを削除する必要があることがわかりましたNSExtensionPrincipalClass。その後、拡張機能の読み込みが正常に開始されました。

于 2017-01-25T16:10:05.537 に答える
2

これは、View Controller にカスタムの統合メソッドがあり、 Swift を満たすために次のようにinit(nibName:bundle:coder:)実装していたためです。initWithCoder

required init?(coder aDecoder: NSCoder) {
    self.init(nibName: nil, bundle: nil, coder: aDecoder)
}

super.init(coder:)代わりにその実装呼び出しを行うことで問題を修正しました。

required init?(coder aDecoder: NSCoder) {
    // [...setting some variables...]
    super.init(coder: aDecoder)
}
于 2019-03-28T20:24:02.500 に答える
0

コンテナーと拡張アプリの両方でアプリ グループを有効にします。非表示の UIKit コントロールをすべて削除します。UILabel, UIView, ...

于 2015-12-22T23:23:16.090 に答える
-3

[[NSUserDefaults alloc] initWithSuiteName:APP_GROUP]のパラメーターが、定義したグループ名と一致していることを確認してください。

于 2014-12-18T14:32:12.540 に答える