問題タブ [nsbundle]

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 投票する
2 に答える
2728 参照

iphone - NSBundle を使用してカスタム ディレクトリからイメージ ファイルを読み取る

すべての画像を含むカスタム ディレクトリを作成します。構成のさまざまな場所で必要なときに画像を取得するのに役立つため、カスタム設計します。

テストフォルダーの下に画像を配置しました.pngタイプです。以下のような画像を取得する方法はありますか。

/** 再度更新 **/

現在、このフォルダーは、Photoscroller の例に従って Application_Home/Resources/ImageTiles/ の下にあります。/Users/home/lifemoveson/test/ImageTiles/ フォルダーに変更するにはどうすればよいですか?

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

objective-c - Sqliteを使用したNSDocumentDirectoryまたはNSBundle resourcePath?

ここで最初に NSDocumentDirectory でパスを検索する理由を知りたいと思っていました:

後で、このパスを別のパスと比較します。今回は NSBundle の resourcePath を使用します。

両者の違いは何ですか?

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

objective-c - 他のフレームワークから画像を取得するには?

ライオンと同じ形のカーソルが欲しい

だからこれを持っている代わりに: NSCursor アイコン

これが欲しい:Lion の NSCursor

System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/Resources/cursors/resizeeastwest/cursor.png新しいOSX 10.7 GMで見つけることができます

NSBundle などのメソッドを使用してそのイメージをロードする方法はありますか? システムからイメージを使用できる場合、アプリケーションに同じイメージを (リソースとして) 使用したくありません。

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

iphone - loadNibNamed で UITableViewCell をロードするときにカウントを保持する

私は、 AppleloadNibNamed:owner:options:が文書化したように、nibファイルからカスタムUITableViewCellをロードするために使用しています:

そして、View Controller のクラス宣言:

MyViewController は、ItemCell のファイルの所有者です。

私は次のことを観察しています。

  • (1)self.itemCell保持回数が0の場合
  • (2)self.itemCell保持回数は2回
  • (3)self.itemCell保持回数が0の場合
  • (3)cell保持回数は1回

誰かが説明できますか:

  • self.itemCell(2) と (3) の間で保持カウントが 2 から 0 になるのはなぜですか?
  • cell(3)の保持回数が 1 になるのはなぜですか?
0 投票する
1 に答える
319 参照

ios - Web サイトからの iOS アプリ リソースの読み込み

私は現在、ビデオとサウンド ファイルを頻繁に使用するため、サイズが 100 MB を超えるユニバーサル iOS アプリケーションに取り組んでいます。これらのアセットを実行時に (Web サイトから) ロードするためのソリューションを実装しましたが、Apple がそのようなアクションを承認しているかどうかを知りたいです。

現在の仕組みは次のとおりです。

  1. iOS デバイスの種類 (iPhone、iPhone Retina、iPad) ごとにバンドル (すべてのビデオとサウンド ファイルを含む) が作成されます。

  2. 次に、このバンドルが圧縮され、サーバーにアップロードされます。

  3. アプリがインストールされているデバイスに応じて、対応する zip ファイルがダウンロードされ、Documents ディレクトリに保存されてから解凍されます。

  4. 最後にバンドルは [NSBundle bundleWithPath: ] でロードされます。

この方法は問題なく機能しますが、ドキュメントを読んでも、Apple がアプリを拒否する可能性があるかどうかわかりませんでした。ありがとう!

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

objective-c - Objective C - nib から UIView をロードしていますか?

ファイルから初期化する基本クラスがありnibます。これからどのように継承できますかclass。それを初期化するたびに、作成しようとしてsubclassいる実際のオブジェクトではなく、基本クラスのオブジェクトが作成されますclass

基本クラス

Aクラス

使用法

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

ios - NSBundle mainBundle pathForResource (おそらく同じ問題ではない)

問題 : [NSBundle mainBundle] pathForResource が null (0x0) を返す

このトピックに関する多くの投稿を読みましたが、ここに私が見つけたものがあります:

  1. パスを取得しようとしているファイルがプロジェクト内にあることを確認してください。確認するには、ファイルのプロジェクト ファイル リストを探し、そこにない場合はドラッグ アンド ドロップします。

  2. 読み込もうとしているファイルがアプリにコピーされていることを確認します。これを行うには、プロジェクト ファイルの下のプロジェクトをクリックします (プロジェクト名が含まれる青いバー -> ターゲットをクリックします -> [ビルド フェーズ] をクリックします -> [バンドル リソースのコピー] をクリックして展開し、ファイルがその中にあることを確認します)。そうでない場合は、プラスをクリックして追加します。

  3. 大文字と小文字が完全に一致していることを確認してください。(別名 - シミュレーターは動作します/アプリは問題ありません) 大文字と小文字が正確に一致することを確認してください。そうでない場合は何も返されません。これを修正するには、プロジェクトで名前を変更するか、ソースで正しい大文字と小文字を使用してください。

  4. プロジェクトにメディア フレームワークがない可能性があります。これを修正するには、プロジェクト メニューをクリックします -> ターゲットをクリックします -> [バイナリをライブラリにリンク] をクリックして展開します。MediaPlayer.framework を選択して、コードをビルドします。

  5. 他のすべてが失敗した場合は、プロジェクトをクリーンアップして、もう一度やり直してください。

これはすべてチェック/修正されていますが、機能していません。これで問題なく動作していたので、アプリで表示しているビデオを変更しました。ファイルを変更したため、動作しなくなりました。

NSString *path = [[NSBundle mainBundle] pathForResource:@"multiplying" ofType:@"m4v"];

Q: なぜ null なのですか? ファイルは大文字と小文字が一致し、正しく入力されており、約 10 MB です。(ファイルが大きすぎますか?) シミュレーターで正常に動作し、エラーなしで、この行より上の行である画像へのパスを取得できます。

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

objective-c - アプリバンドルのplistにアクセスするとnullが返されます

以前に使用したコードを使用して、plistを配列にロードすることに成功しました。

initWithContentsOfファイルが失敗しています(配列がnullであり、アプリバンドルでplistが見つからないことを示しています)。

iPhoneシミュレーターで、最初の行で作成されたパスがアプリファイルを指していることを確認し(実際にそうです)、Finderのコンテキストメニュー[パッケージの定数を表示]を使用して、「species_name.plist」が実際に存在することを証明しました。バンドル-何かが含まれていることを示唆する長さであるため、機能するはずです(そして私が書いた他のiOSアプリでもそうです)。提案は大歓迎です...

[env Xcode 4.2ベータ版、iOS4.3.2]。

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

objective-c - ローカル画像をUIWebViewにロードします

スクリーンショットを撮り、そのローカルパスをwebviewに送信したいので、それが表示されます。webviewがNSBundleから画像を取得できることは知っていますが、このスクリーンショットは動的に作成されます-コードで何かを追加できますか?

私はこのようにそれを試していました:

ただし、loadImageFunctionは、file:///またはfile://プレフィックスを使用してアクセスできません。解決策は何ですか?助けてくれてありがとう。

編集:コードに欠落している行を追加しました

解決策:Cyrilleのアドバイスとこのライブラリをエンコードに使用しました:http://cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html

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

objective-c - NSBundle フォルダーがデバイスに見つかりませんが、シミュレーターで動作します

私が書いているiPadアプリで本当に奇妙な問題が発生しています。起動時に、他のいくつかのフォルダー (空のフォルダー) を含むフォルダーをアプリケーション バンドルから Documents ディレクトリにコピーしたいと考えています。'flds' (すべて小文字) と呼ばれるコピーされるフォルダーは、'追加されたフォルダーのフォルダー参照を作成する' を使用して Xcode 4 プロジェクトに追加され、コンパイル後に実際に .app ファイルの一部であることを確認しました。(そして、コピーしようとしたときにまだ存在していないこと。)

これらの呼び出しのいずれかを使用して「flds」フォルダーにアクセスしようとしました (それらはすべて機能します)。

次に、NSFileManager のcopyItemAtPath:toPath:error:メソッド (または、パス文字列の代わりに URL を使用する場合は、同等の URL) を使用してコピーします。

これらの戦略はすべて、iPad シミュレーターと iPad デバイスで完全に機能しますが、次の例外があります: アドホック配布用に (正常に) ビルドしたら、.app と .mobileprovision を iTunes にドラッグし、同期してからアプリを実行します。デバイス、システムは「flds」フォルダーが存在するとは見なしません! 私はこれを何時間も調べようとしてきましたが、うまくいきませんでした。繰り返しになりますが、シミュレーターと Xcode から実行されているデバイスの両方で動作することは完全に確信していますが、iTunes 経由で同期した場合は動作しません。

アイデア?

iTunes 経由で iPad アプリを同期した後も、次の呼び出しでフォルダー パスが正常に取得されることがわかりました。

ただし、このパスを使用してフォルダーを Documents ディレクトリの新しい場所にコピーすると、フォルダー自体とその中の .txt ファイル (テストとしてそこに入れましたが、実際には存在しないはずです) のみが取得されます。 6-7 の空のサブフォルダーではなく、コピーされます。繰り返しますが、同じパターンがそれ自体を示しています: シミュレーターと Xcode から実行されているデバイスの両方で期待どおりに動作します (「test.txt」を含む「flds」フォルダーと空のサブフォルダーは正常にコピーされます) が、iTunes 経由で同期された場合はそうではありません (「flds」フォルダーのみ)サブフォルダーではなく、「test.txt」がコピーされます)。これは本当に の意図した動作copyItemAtPath:toPath:error:ですか? また、iTunes 経由で同期した後に動作が異なるのはなぜですか?