問題タブ [automatic-ref-counting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
405 参照

xcode - XCode –XCode4.2ベータARCはコンパイルされません

XCode 4.2ベータ版(ビルド4D58)で単純なOSXコマンドラインアプリケーションをビルドしようとしています。しかし、コンパイルしようとするとエラーが発生します。

/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSZone.h:57:22:エラー:「CFMakeCollectable」は使用できません:自動参照カウントモードでは使用できません[3] return (cf?(id)CFMakeCollectable(cf):nil);

/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:173:13:エラー:宣言されていない識別子'__bridge_retain' [3] return(__bridge_retain CFTypeRef)X;

これはARCと関係があると思いますが、アプリケーションをコンパイルするにはどうすればよいかわかりません。

0 投票する
3 に答える
1355 参照

objective-c - ARCマネージコードでの__attribute__の使用

ARCがObjective-Cに来たとき、私はClangプロジェクトのWebサイトに投稿されたObjective-C自動参照カウント(ARC)ガイドを読んで、それが何であるかをよりよく理解するために最善を尽くしました。私がそこで見つけたのは(そして他のどこにもありません)、__attribute__特定のコードがその戻り値を自動解放するかどうか、たとえば(__attribute__((ns_returns_autoreleased)))、またはパラメーターを「消費する」かどうか(など)をARCに示すために宣言を使用することについての言及でし__attribute((ns_consumed))た。

しかし、ガイドはこれらの宣言が保持する実際の必要性のレベルについてほとんど何も述べていないようです。それらを除外しても、静的アナライザーを実行する場合でも、プロジェクト自体を実行する場合でも、違いはないようです。これらも違いを生むのでしょうか?メソッドにラベルを付けることに利点はあります__attribute__((objc_method_family(new)))か?私がARCで見つけた記事では、これらの指定子についてはまったく言及されていません。おそらく、ARCの第一人者は、これらが何に使用されているかについて語ることができます。

(個人的には、念のために関連するすべての指定子を含めますが、コードが難読化されて乱雑になることがわかります。)

0 投票する
4 に答える
26956 参照

ios - iOS: ARC を有効にしてメモリからオブジェクトを削除するには?

iOS 5 SDK を使用して iOS アプリを開発しています。自動参照カウントが有効になっています。しかし、大量に作成されている特定のオブジェクトがあり、1 秒後に解放する必要があります。そうしないと、デバイスが非常に遅くなるからです。デバイスが非常に遅いため、リリースされていないようです。ARC が有効になっているときにオブジェクトを手動で解放する方法はありますか?

編集:私のコード、これはスパークルを生成するために1秒間に200回呼び出されます。それらは 0.8 秒後にフェードアウトするため、それ以降は役に立ちません。

輝きのオブジェクト コード:

0 投票する
1 に答える
1406 参照

objective-c - 自動参照カウントをサポートする iOS 5 用の ShareKit のアップデートはありますか?

iOS 4.3 で最初に開発されたアプリを iOS 5 に移行しようとしています。すべてのサードパーティ コードは、Xcode のリファクタリング ツールを使用して移行されています。ただし、コードは変換されず、ShareKit や ASIHTTPRequest などのサード パーティ ファイルで多くのエラーが表示されます。誰でも助けてもらえますか?

0 投票する
7 に答える
14629 参照

iphone - SFHFKeychainUtils。iOSキーチェーン。ARC互換

SFHFKeychainUtilsを使用している人が、ARCと互換性があるようにそれらを変更できたのではないかと思いました。より正確には

私は試した

また

これらの2つは、エラーが発生しなかった2つのアプローチだけです。ここにCFTypeRefの代わりにobjc_XXXを追加する他のアプローチでは、エラーが発生します(ARCではobj-cポインターからCFTypeRefへの暗黙の変換は許可されておらず、xパラメーターをyパラメーターに渡すと修飾子が破棄されます)。明らかに、コードの最初の切り取りでもエラーが発生します。ビルド時にエラーは発生しませんが、コードのこの部分に到達すると、アプリがEXC_BAD_ACCESSでクラッシュします。

完全なSFHFKeychainUtilsのリンク:https ://github.com/ldandersen/scifihifi-iphone/tree/master/security

何か助けてください?ありがとうございました。

0 投票する
2 に答える
3411 参照

objective-c - メモリ不足の警告に応じて割り当てを解放しますが、アプリはまだクラッシュします

APIから取得した写真を表示するためのアプリを作成しています。各写真のサイズは約1MBです。ユーザーが実際にアプリを使用するように、写真を表示してから次の写真に移動する「スライドショー」を設定しました。InstrumentsのiPad1でテストしています。

アプリがメモリ不足の警告を受け取ると、現在ユーザーに表示されていないすべての写真と、APIから返されたすべてのキャッシュされたモデルデータをダンプします。Instrumentsでの割り当てが大幅に減少し、仮想メモリの使用も同様に減少しています。この消費メモリの減少にもかかわらず、私のアプリはまだOSによって強制終了されています。

アプリケーションは、終了する前にクラッシュすることなく、2〜3のメモリ警告に応答します。

最近ARCに切り替えたのですが、何かわからないことがあるのでしょうか?参照をnilに設定するだけで十分だと思います。画像データをダンプするインメモリモデルのコードは次のとおりです。

どちらが呼ばれています。また、メモリ不足の警告を受け取ったときにremoveAllObjectsを呼び出しているNSMutableDictionaryがあります。デバイスコンソールに次のメッセージが表示されます。

これは、クラッシュするまでの私の割り当て/VMインストゥルメントです。

メモリを解放しているのに、なぜ私のアプリが強制終了されるのか、誰かが知っていますか?

0 投票する
11 に答える
125812 参照

ios - IBOutletsはARCの下で強いか弱いか?

私はARCを使用してiOS5専用に開発しています。IBOutletsからUIViews(およびサブクラス)はまたはである必要がありますstrongか?weak

以下:

このすべてを取り除くだろう:

これを行うのに問題はありますか?テンプレートはstrong、「Interface Builder」エディターからヘッダーに直接接続するときに作成される自動生成されたプロパティと同じように使用していますが、なぜですか?は、サブビューを保持するそのへの参照をUIViewControllerすでに持っています。strongview

0 投票する
2 に答える
6323 参照

ios - UIViewController は、プログラムで作成された UISearchDisplayController を保持しません

プロパティ1に関するUIViewController ドキュメントでは、次のように述べています。searchDisplayController

検索ディスプレイ コントローラーをプログラムで作成する場合、このプロパティは、初期化時に検索ディスプレイ コントローラーによって自動的に設定されます。

そして、このように UISearchDisplayController を作成すると:

-[UIViewController searchDisplayController]ありませんnil。ただし、イベント ループが終了すると無効になるため、検索バー内をタッチしても検索ディスプレイ コントローラーが表示されません。何もクラッシュしません。これは非常に奇妙です。への呼び出しを省略するとautorelease、すべてが機能します。

ただし、リークしますUISearchDisplayController(Instrumentsでこれを確認しました)。searchDisplayController プロパティ(nonatomic, retain, readonly)は、設定後も保持されると予想されるため、マークされてUISearchDisplayControllerいます。

このスタックオーバーフローの記事は関連しています。

0 投票する
5 に答える
7094 参照

ios - ARCでのIBOutletとviewDidUnload

SOについても同様の質問がありますが、ここでは十分に説明されていないことを明確にしておきたいと思います。

私は、すべてのデリゲートとアウトレット(実際には、「親」オブジェクトへの参照、良き市民であり、オブジェクトグラフについて少し考えてみる)は、弱参照をゼロにする必要があることを理解しています。参照されるオブジェクトの保持カウントがゼロに達すると、弱いポインターが自動的にnilにドロップするという性質により、これはIBOutletsをnilに設定するviewDidUnload必要がなくなったことを意味しますか?

だから、私が私のアウトレットをそのように宣言した場合:

次のコードは効果がありますか?

0 投票する
2 に答える
1126 参照

objective-c - アプリをiOS5に移行するにはどうすればよいですか?(またはARCをオンにします)

作業中のアプリがあり、iOS 5を使い始めたばかりです。自動参照カウントを使い始めたいのですが、iOS5に移行するために必要な手順がわかりません。 ARCをオンにします。