答えが受け入れられました。問題の正しい説明が得られました。私はまた、代理店のポイントを代用することで問題を解決しました。CFStringをCFStringRefに変換し、CFErrorRefをCFErrorに変換します。
MacOSXにはCoreFoundationを使用しているC++コードがあります。
をパラメータの1つとする私のコードでは、CFPropertyListCreateWithData
という次の関数を使用します。まあ、私はCFErrorRef myError
を作成して、まず問題
&myError
としてそれを渡す:私はそれが結果として、私にいくつかの良いデータが得られますが、エラーがNULLではないのでバグは、
Documentationであると思います。エラーが発生した場合、データはNULLでなければなりません。それとも私はドキュメンテーションを誤解しましたか?
最初の解決策:エラーがない場合、エラーは定義されていません。したがって、データがNULLの場合のみエラーをチェックする必要があります。私は誤りであるチェックしたい:また私は私のプログラムは、セグメンテーションフォールトでクラッシュさせCFRelease
UNDEFINED OBJECT、ERROR、
第二の問題を使用したRELEASINGました。 この関数にはCFErrorCopyFailureReason
、doc here、 が入りますが、CFErrorではなくCFErrorRefをとり、CFStringを返します。 CFErrorをCFErrorに変換するにはどうすればよいですか?
SECOND SOLUTION:NOSENSEの質問、私はSWIFTのドキュメントを読んAND NOTのObjective-C
であった第三の問題:機能CFErrorCopyFailureReason
は私にCFString
を与えるが、CFString
が定義されている場所、私は知りません! CoreFoundation/CoreFoundation.h
にはなく、CoreFoundation/CFString.h
にはありません。コンパイルしようとすると、定義されていない型エラーが発生します。 次に:どのファイルがCFString
に定義されていますか? CFStringRef
に変換できますか?どうすればいいですか?
第三の溶液:NOSENSEの質問、私はAND NOT OF SWIFTのドキュメントを読んでいたのObjective-C
第4の問題点:私はCFStringRef
とCFErrorRef
の代わりに、CFString
とCFError
を使用している場合、私は、持っているコードで、それコンパイルしますが、私にはNSInvalidArgumentException
があります。コンパイル時にエラーが発生するはずはありませんか?私はRunTimeExceptionが好きではないでしょう...
4番目の解決策:わかっているように、私はエラーがデータを失った場合にのみチェックしなければなりませんでした。その場合、私は、間違った誘因を除いた、定義されていないデータの誤りをチェックしていました。明らかに、私はちょうど私のC++アプリケーションのInfo.plist
ファイルを読み書きしたいと思っています。これは、エラーが発生したときにエラーが発生する可能性があります。私はこの点からインスピレーションを受けて、Saving and Restoring Property Listsのサンプルコードをかなり修正しました。 Info.plist
ファイルを読み込んで変更するにはサンプルがありますか?教えてください:) PlistBuddyまたは他のツールを使用してください。
は結論する:サンプルコードはうまく機能し、私はみんなに
おかげでドキュメントを誤解
コードを表示する必要があります。一般に、コンパイル時には検出されず、実行時にのみ検出されるエラーがたくさんあります。バンドルのInfo.plistのプロパティに興味があるなら、['CFBundle' API](https://developer.apple.com/documentation/corefoundation/cfbundle?language=objc)を考慮する必要があります。 –