問題タブ [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 投票する
3 に答える
5041 参照

cocoa - pathForResourceが機能しない

問題があります

使用した場合

大丈夫です。でも使った時

動作しません

何か考えがあります!?

ありがとう

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

objective-c - cocoa プラグインで競合するフレームワークを複製する

現在、アプリケーションのプラグイン フレームワークを作成しています。アプリケーションを更新せずにプラグインをリリースできるようにしたいと考えており、フレームワークをサードパーティのプラグインで利用できるようにする予定です。現在、2 つのプラグインが同一のフレームワークで出荷されている場合に問題が発生しています。プラグインがロードされると、フレームワークが 2 回ロードされるため、ランタイムが混乱します。この問題を軽減する最善の方法は何ですか?

0 投票する
0 に答える
340 参照

cocoa - プラグインで CGContextRef が破損する

これは、私が経験した見知らぬ問題の1つの写真です。

スクリーンショット

プラグイン アーキテクチャを使用して Core Graphics で描画しています。ホスト アプリは、プラグインに渡されるコンテキストを作成し、プラグインはコンテキストを描画して送り返します。ここでは、複数のオブジェクトを描画するためにこれを複数回実行しました (ただし、デモンストレーションのため、オブジェクトが 1 つだけでも発生します)。結果は変換さCGImageRefsれてキャンバス (別のCGContext) に配置され、キャンバスは に変換されてNSImage表示されます。

ご覧のとおり、問題は、わずかに破損したバージョンが返されることが多いことです。毎回違います。もう 1 つの奇妙な点は、ボックスのアルファ値が 50% であるはずなのに、そうでないことです (2 番目のボックスの上部を除いて、これはほぼ適切な色のように見えます)。興味深いことに、背景 (ホスト アプリ内の Core Graphics で描画) が破損することはないため、CGImagetoNSImage変換などの問題にはなりません。

さらに奇妙な部分は、プラグインを直接エクスポートしようとしたことNSImageです。まったく同じ効果があり、おそらく少し悪いことさえありました。問題は、プラグインでCore Graphicsを使用して何かを描画することにあるようです。他の誰かがこれに遭遇しましたか、それとももっと良いことに、他の誰かが解決策を見つけましたか?

役立つ場合のホストコードは次のとおりです。

そしてプラグインコード:

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

cocoa - Cocoa /C++でリソースをロードするための相対パスの使用

私は現在、スクリーンセーバーを構築するために初めてCocoaと直接協力しています。.saverバンドル内からリソースを読み込もうとしたときに問題が発生しました。.exr基本的に、を使用してファイルをロードするための小さなC++ラッパークラスがありますfreeImage。これは、絶対パスを使用している限り機能しますが、あまり役に立ちませんね。.exrしたがって、基本的には、ファイルをバンドル自体のレベルに.saver配置したり、バンドルのResourcesフォルダー内に配置したりするなど、すべてを試しました。

次に、このようなものをロードしようとしました.exrが、成功しませんでした。

また、次のように.saverバンドルの場所に移動してみました。

...おそらく.exrその場所からロードしますが、成功しません。

それから私はこれに出くわしました:

...これはCocoaでリソースを見つけるための一般的な方法のようですが、私の場合は何らかの理由で空になっています。それについて何かアイデアはありますか?頭に浮かんだことは何でも試してみましたが、うまくいかなかったので、入力していただければ幸いです。

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

objective-c - NSViewController をロードする NSBundle

NSViewController を含むカスタム NSBundles をアップロードするプロジェクトを検討しています。私のメインプログラムでは、ロードされた後にバンドルを処理するためのこのコードがあります...

そして、バンドル内のプリンシパル クラスの init メソッドは次のようになります...

View.nib は bundles プロジェクトにある nib です。しかし、バンドルをロードするたびに、このエラーが発生します...

2010-05-27 09:11:18.423 PluginLoader[45032:a0f] という名前の nib が見つかりません: バンドル パスのビュー: (null) 2010-05-27 09:11:18.424 PluginLoader[45032:a0f] -[NSViewController loadView ] "View" nib をロードできませんでした。

[label setStringValue:[instance name]];行がラベル テキストを正しく設定しているので、すべてが接続されていることがわかります。さらに、バンドル内のすべてのクラスを取得してメイン アプリケーション プロジェクトにロードすると、すべてが期待どおりに機能します。バンドルで「ビュー」を正しく参照する方法について何か考えはありますか?

ありがとう!

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

objective-c - Obj C で文字列のリストを生成する

Objective C は、一見単純なタスクを非常に困難にするために、フープを飛び越えているようです。

image1.jpg、、image2.jpgなどの一連の文字列を作成するだけです

つまりループ中 var imgString:String='image'+i+'.jpg;

ベストプラクティスはNSMutableStringwithappendStringメソッドを使用することだと思いますか?

私は何を間違っていますか??

次のエラーが表示されます

エラー: 構造体または共用体ではないメンバー 'appendString' の要求

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

unit-testing - OCUnit&NSBundle

「iPhone開発ガイド」に合わせてOCUnitテストを作成しました。テストしたいクラスは次のとおりです。

そして私のユニットテスト(LogicTestsターゲット):

必要なすべてのフレームワーク、「myClass.m」および画像がターゲットに追加されました。しかし、ビルド時にエラーが発生します:

[[myClass alloc] initWithIndex:0] raised Image (image_0) with path \"(null)\" for current index (0) wasn't found.. myClass initialization error

このコード(初期化)は、アプリケーション自体(メインターゲット)で正常に機能し、後で正しい画像を表示します。プロジェクトフォルダ(build/Debug-iphonesimulator/LogicTests.octest/)も確認しました。必要な画像ファイルがあります(LogicTestsそのうちの1つです)。Info.plistimage_0.png

どうしたの?

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

iphone - iPhonepathForResourceとbundlePath

pathForResourceを使用したいのですが、パスが存在しない場合はパスが作成されないようです。したがって、次のようにして手動で作成しようとしています。

私は動的にファイルを作成しているのでBuild and Run、アプリケーションを入手した後でそれらにアクセスする必要があります。ただし、プロジェクトは一意のIDフォルダーに配置されるため、パスは次のようになります。

しかし、その一意のIDは、ビルドを実行するたびに変更されます。毎回(シミュレーターでも)到達できるパスを作成する適切な方法は何ですか?

ありがとう。

更新:質問を編集しました。将来、質問に出くわした人を助けることができれば幸いです。

更新:IWasRobbedは、パスURLを作成する適切な方法に回答しました。しかし、私が見つけた最良の答えは、ブラッドパークスからです。しかし、もっとクリーンな方法があったらいいのにと思います。

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

cocoa - テストのためにその場で優先文字列のローカリゼーションをオーバーライドする

iPhone シミュレーターの設定アプリを使用して言語を切り替えることは、ローカリゼーションの微調整をテストする PITA の方法です。アプリを再起動せずにデバッグ設定を使用して、アプリでその場でローカリゼーション (en/fr/es/etc) を切り替える方法を見つけようとしています。

NSBundle は、任意のローカリゼーションからローカライズされたリソースを要求する方法を提供します。

しかし、文字列管理サブシステムに相当するものは見つかりません。これらの 質問から、登録済みのデフォルトをオーバーライドできるように思えますが、これは間抜けに聞こえ、アプリの再起動が必要です。

ここに他の戦略はありますか?NSLocalizedString を、デバッグ ビルドで独自に機能するものでラップした場合、特定の.stringsファイルをロードするための最短パスは何ですか? これらの文字列テーブルにアクセスして、自分で生で解析せずにプログラムでアクセスする方法はありますか?

ありがとう。

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

iphone - iPhone: アプリの実行可能ファイルをファイルとして読み取る

いくつかの方法でメインアプリケーションを読み込もうとしましたが、何も返されませんでした。NSFileHandleを使用すると、次のコードでは何も返されません:

しかし、私は何も戻ってこなかったので、私の質問は、読み取り/書き込みのために実行可能ファイルにアクセスすることは可能ですか? はいの場合、どうすればそれができますか? ありがとうございました