0

RubyMotionを使用してAddressBookにエントリを追加しようとしています。CFErrorRefパラメーターを適切にインスタンス化する方法がわかりません。

error = nil # compiles but won't capture an error properly
# Here are my numerous attempts:
#error = Pointer.new( :object ) expected instance of Pointer of type `^{__CFError}', got `@' (TypeError)
#error = Pointer.new( '^{__CFError}' ) Can't find pointer description for type `^{__CFError}'
#error = Pointer.new( '{__CFError}' ) Can't find pointer description for type `{__CFError}'
#error = Pointer.new( '__CFError' ) Can't find pointer description for type `__CFError'
#error = Pointer.new( CFError.type ) uninitialized constant AppDelegate::CFError (NameError)
#error = Pointer.new( CFErrorRef.type ) uninitialized constant AppDelegate::CFErrorRef 
p = ABPersonCreate()
raise error[0] unless ABRecordSetValue( p, KABPersonFirstNameProperty, "Guy", error )
raise error[0] unless ABRecordSetValue( p, KABPersonLastNameProperty, "Argo", error )
ab = ABAddressBookCreate()
raise error[0] unless ABAddressBookAddRecord( ab, p, error )
raise error[0] unless ABAddressBookSave( ab, error )
NSLog( "Record successfully added." )

提案を歓迎します。男

4

1 に答える 1

1

RubyMotion 1.9へのアップグレードには、次の修正が含まれています。

  • CoreFoundation型へのポインターを受け入れるAPIに:object型のポインターオブジェクト(例:CFErrorRef *)を指定できないコンパイラのバグを修正しました。

sudo motion updateあなたのためにこれを取得します。

于 2012-06-01T01:46:12.693 に答える