問題タブ [cfstring]
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.
iphone - 変数はCFStringRefではありません
私はこれを持っています:
そして、次のようなNSStringを取得します。
そして、あるコンテキストでこのNSStringを使用した後、このばかげたエラーが発生します。
しかし、このようにNSStringを作成すると、次のようになります。
endPoint = @"48.8160525,2.3257800"
その後、完璧に動作します!
このエラーについて、Variable is not a CFString
私は次のことを試みました:
使用しようとしましendPoint
たが、この方法でも機能しませんでした。奇跡的なアイデアはありますか?Thx
objective-c - -[CFString ハッシュ]: 割り当て解除されたインスタンスに送信されたメッセージ
EKEvent
イベント ストアからをフェッチしUITableView
て、月のリスト ビューを設定して表示しようとしています。
基本的にそれは機能し、私は次のようにしています:
reloadEvents
内から呼び出されます
イベントの取得は同期的に行われ、その間 UI がロックされるため、GCD を使用しています。パーツはのNSDate
私自身のカテゴリNSDate
です。
これで、ビュー コントローラーが読み込まれると、イベント ストアからイベントが取得され、正しく表示されるようになりました。ビューコントローラーもリッスンしEKEventStoreChangedNotification
、そこでアプリがクラッシュします。アプリの外部でイベントを変更すると、通知を受け取り、イベント データをリロードしようとしますが、その後...
*** -[CFString length]:
割り当て解除されたインスタンス 0x666f530 に送信されたメッセージ
編集
私はreloadEvents
次のように変更しました:
これにより、アプリはクラッシュしなくなりました。何かが変更されたように見えるcalendarA
ため、エントリは既に割り当て解除されています (問題の原因を見つけた後、これは完全に論理的です)。
cocoa - MacRuby で C 関数に CFStringRef ポインターを渡す
OS X の DVDPlayback フレームワークから次の関数を呼び出したいと思いました。
最終的に、次の作業コードを思いつきました。
しかし、私は'^{__CFString}'
どのドキュメントにもそのビットを見つけられず、後でそれが実際に何をしているのかを見つけただけでした (最初はエラーメッセージから切り取って貼り付けました)。私は最初に :id と :string の両方で Pointer.new を試しましたが、成功しませんでした。
だから私の質問は:
- このポインターを取得する最良の方法は何ですか (私の方法は醜いようです)?
- Pointer.new(:string) が機能しなかったのはなぜですか? String、NSString、およびCFStringは同等だと思いました
- この情報を見つけるためにどこを見たでしょうか?(MacRuby のサイトをチェックしたところ、「マクロ ポインター」は「ポインターについて何も知られていない」と報告され、Google で 12 件のヒットがあり、「MacRuby: The Definitive Guide」が報告されていました)
ios5 - iOS での URL エンコード文字列の失敗
ARC を使用して iOS 5 アプリで文字列を URL エンコードしようとしています。
これは私がそれを行う方法です:
次に、次のようなテスト データで呼び出します。
しかし、私が得た出力NSLog
は次のとおりです。
それは正しくないように思えますが、何があっても正しく理解できません
iphone - [NSBundle mainBundle] によって宣言されている CFString オブジェクト
iOS cocos2d ゲームのパフォーマンス改善に取り組んでいます。Instrumentsツールを使ってアプリのメモリ割り当てをチェックしていると、あることに気がつきました。[NSBundle mainBundle] 呼び出しによって宣言および保持されている CFString オブジェクトが多すぎます。それは言います、
カテゴリ: CFString (不変) 責任ある呼び出し元: [NSBundle mainBundle]
私のコードには、次の行を書いた場所がたくさんあります
pathForResource メソッドでハードコードされた文字列を指定しているため、この CFString の問題は上記のコードが原因ですか? または、この問題の理由は何ですか? 誰でも助けてもらえますか?この CFString の割り当ては、私のコードの約 2Mb を占めているので、心配しています。
よろしくお願いします
iphone - iphone:-[CFStringリリース]:割り当て解除されたインスタンスに送信されたメッセージ
私が作業しているアプリは、iPhoneで実行するとクラッシュし続けますが、シミュレーターではクラッシュしません(ただし、シンボリックなmalloc_error_breakなしで実行すると警告が表示されますが、アプリはSimで動作し続けます)
文字列を手動で解放するのではなく、次を使用します。
(私は他のアプリのためにいつもやっていて、私に問題を与えたことはありません)
ここで、malloc_error_breakをブレークポイントとして設定すると、次のようになります。
XCODE4を使用すると、次のようにジャンプします。
シミュレーターで実行するとNSZombieEnabledもあります
誰かがXCODE4でこれをデバッグする方法について私を助けてくれるか、オンラインのチュートリアルを教えてくれれば幸いです!
よろしく
デビッド
iphone - CFString から特定の属性を取得する方法
文字列が 1 バイト エンコーディングかどうかを知りたいです。はこのCFShowStr
作業を実行できますが、コンソールにメッセージを出力します。CFShowStr
関数の出力メッセージは次のようIsEightBit
になります。アイテムは私が欲しいものです:
macos - CFStringRef を QString に変換する
クロス プラットフォームの C++ ヘッダー ファイル。プラットフォームごとに個別の c++ ファイル: windows、linux、mac。列挙ウィンドウのプラットフォーム固有の実装を扱います。
Mac 側: CFStringRef が設定されています。ヘッダー ファイルは QString オブジェクトを定義します。CFStringRef の内容を QString に渡す必要があります。
これはどのように達成できますか?
ios - 無効なCfStringRefplist(辞書の配列)iOS
ファイルに次のコードがあります
これをデバッガーで実行すると、NSString*filePath行に「invalidCfStringref」と表示されます。
どんなコードを試しても、これを乗り越えることはできません。
何か案は?
また、plistは辞書の配列ですが、コードが機能しないため、それらを解析できません。
c++ - Core Foundation は、CFSTR() への呼び出しごとにメモリ リークを作成します。
私は通常、CFSTR() マクロを使用して、標準の C 文字列から CFString オブジェクトを作成します。いくつかのテストとドキュメントの確認を行った後、この関数を呼び出すたびに、プログラムが終了するまで存続するメモリ リークが自動的に発生することに気付きました。ビジュアル リーク ディテクターは、アプリケーションを閉じた後でもメモリが解放されていないと報告します。CFRetain、CFRelease を呼び出しても、メモリにはまったく影響しません。私はたくさんの呼び出しを行うので、CFSTR とは異なり、CFRelease を呼び出した後にメモリが完全に解放される CFStringCreateWithCString を使用する必要があるかどうか疑問に思っていました (メモリ リーク検出ツールからも報告されています)。
ありがとう
更新 (コメントへの返信): 私は Windows を使用しており、C++ アプリケーションから公式の CoreFoundation ライブラリを直接使用しています。ソース コードが同じであるため、メモリ リークを特定するために OpenCfLite を使用しますが、Visual Leak Detector ヘッダーを含めるか、組み込みの Visual Studio リーク ディテクターを使用することもできます。アプリケーションを閉じると完全なレポートが表示され、メモリ アドレスとその内容がはっきりとわかります。レポートから、CFSTR(=__CFStringMakeConstantString) に渡された同じ文字列がまだメモリ アドレスにあることがわかります。これはバグでも私が間違ったことでもないようですが、Apple が述べているように、「CFSTR から返された値は CFString によって解放されず、プログラムが終了するまで有効であることが保証されている」ため、通常の動作です。
呼び出し例: CFSTR( "この文字列は __CFStringMakeConstantString 関数から作成されました" )
--------------- これは Microsoft ビルトイン リーク ディテクターからのダンプです: ----------------
メモリ リークを検出しました。
オブジェクトのダンプ ->
c:\projects\cftest\cftest\cfbase.c(277) : {61} 0x00A01648 の通常ブロック、長さ 96 バイト。
データ: < GThis st > 00 00 00 00 8C 07 00 00 47 54 68 69 73 20 73 74
オブジェクトのダンプが完了しました。
---------------これは VLD ツールからのダンプです:---------------
---------- 0x04AD2FE8 のブロック 1: 4096 バイト ----------
コール スタック:
......... GThis.st
72 69 6E 67 20 68 61 73 20 62 65 65 6E 20 63 72 ring.has.been.cr
65 61 74 65 64 20 66 72 6F 6D 20 5F 5F 43 46 53 食べる.from.__CFS
74 72 69 6E 67 4D 61 6B 65 43 6F 6E 73 74 61 6E トリングメイク eConstan
74 53 74 72 69 6E 67 20 66 75 6E 63 74 69 6F 6E tString。関数
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........................
ここで、CFSTR への呼び出しを CFStringCreateWithCString に置き換えることで、上記の問題をすべて簡単に回避できます (少なくとも CFRelease を呼び出すことを覚えている限り) メモリ リークはありませんが、その理由を知りたいです。多くのコード サンプルは、この関数を呼び出すたびに文字列をメモリに格納し、プログラムが終了したときにのみ解放できる場合に、CFSTR が多用されていることを示しています。
ありがとう