4

次のような奇妙な行を見つけました。

id *_optimizationHints; <- in NSManagedObjectModel.h

id* _cd_snapshots; <- in NSManagedObject.h

id** _kvcPropertyAccessors; <- in NSEntityDescription

id* _debuggingRecords; <- in NSManagedObjectContext.h id *_cachedObsInfoByEntity; <- in NSManagedObjectContext.h

ARCオプションを使用してプロジェクトをコンパイルしようとすると、次のようなエラーが表示されます: Pointer to non-const type 'id' with no明示的な所有権

どうしたの?同様の質問から読んだように、置き換える必要がありますid *->id

しかし、これはメインの CoreDate.Framework です!

私はこれを理解できません。

この「冗談」を説明できる人はいますか?

4

2 に答える 2

4

今朝、同様の問題が発生しました。この問題は、Core Data が何らかの形で組み込まれていることが原因のようです。CD フレームワークをインポートするとき、Finder から直接ドラッグ アンド ドロップするのではなく、Building Phases に移動して依存関係フレームワークを追加する必要があります。うまくいけば、これは役に立ちます

于 2012-08-13T08:22:36.287 に答える
4

今日、静的ライブラリと公開コード部分に分割したい既存のプロジェクトを変換しているときに、同じ問題に遭遇しました。ここの指示に従いました: https://github.com/jverkoey/iOS-Framework

以前のプロジェクトからドラッグ アンド ドロップして CoreData.framework を追加したことは事実です。しかし、私はそれを削除し、あなたが指摘したように(複数回)再追加しましたが、あなたが報告したのと同じエラーが発生します.

編集:これは私の問題でした:フレームワークを削除し、Xcode 内から再読み込みしました。私の問題は、削除されていないプロジェクトディレクトリ内に実際に「CoreData」サブディレクトリがあったことです。

解決策: Finder でそれを削除し、「ライブラリとバイナリをリンクする」に再度追加すると、問題は解消されました。

于 2013-04-26T16:13:33.923 に答える