0

非アプリからiPhoneアプリに追加ファイルを追加.hしました。これらのファイルのビルド フェーズで -fno-objc-arc をコンパイラ フラグとして設定します。しかし、これらのファイルを追加した後にこのアプリケーションを実行しようとすると、問題に直面しています。アプリケーションはエラーを表示せず、一度失敗したことを示し、ビルドのプロセスを停止します。.mARCARC

私は混乱しており、これで何が問題なのかを理解しようとしています。これらの非ARCファイルを削除した後、正常に実行されています。

4

2 に答える 2

1

まず、.h ファイルを追加しますが、コンパイル フラグを設定しません。これに関するコメントは少し混乱します。実際、質問とコメントは混乱を招きます。それでは、これを整理してみましょう。

  • .m と .h の両方をプロジェクトに追加しました - 左ペインに表示されます
  • .m ファイルは、-fno-objc-arc のコンパイル フラグを使用して、目的のターゲットのビルド フェーズに追加されました。

あなたの質問は自己矛盾しているので、今ではトリッキーになります:

1) ビルドしようとしましたが、ビルドに失敗しました。次に、投稿を編集して、エラー メッセージを提供します。

2) ビルドは成功し、プロジェクトを実行しましたが、何らかの理由で失敗しました。問題は、どのように失敗したかを教えてくれないことです。

したがって、質問を明確にすることに加えて、非 ARC ファイルをプロジェクトに追加する場合、そのファイルは特定の規則に準拠する必要があることに注意してください。これについては、ARC ドキュメントで読むことができます (2 つの非常に短い記事、1 つは Apple から)。 、llvm からの 1 つ)。たとえば、そのファイルに「init」または「create」で始まるメソッドがある場合、それが返すオブジェクトは自動解放されずに保持される必要があります。

私は個人的に、ARCプロジェクトで非ARCファイルを1年間問題なく使用しています。

于 2012-06-26T12:06:52.283 に答える
0

次のことを行うだけです。

  1. シミュレーターをリセットします。

    2. ビルドをクリアする

非アーク ファイル コンテンツで、release、retain、autoreleasepool、および auto release を削除します。

ビルドして実行した後。それがうまくいくことを願っています。

于 2012-06-26T11:46:46.107 に答える