0

これはMacRubyで機能します(「セキュリティ」フレームワークが必要です)

error=SecKeychainAddGenericPassword(
                              nil,
                              "someservice".length,
                              "someservice",
                              "someusername".length,
                              "someusername",
                              "somepassword".length,
                              "somepassword".pointer,
                              nil)

RubyMotion には「.pointer」メソッドがないため、次のようにする必要があると思いました。

lpointer=Pointer.new(:string)
lpointer.assign("somepassword")

しかし、RubyMotion では、これは実際にはキーチェーンにパスワードを保存しません。キーは正常に作成されていますが、パスワードは含まれていません。

error=SecKeychainAddGenericPassword(
                              nil,
                              "someservice".length,
                              "someservice",
                              "someusername".length,
                              "someusername",
                              "somepassword".length,
                                    lpointer,
                              nil)

何が欠けていますか?

4

1 に答える 1

1

これは機能しています

error=SecKeychainAddGenericPassword(
                              nil,
                              "someservice".length,
                              "someservice",
                              "someusername".length,
                              "someusername",
                              "somepassword".length,
                              "somepassword".dataUsingEncoding(NSUTF8StringEncoding).bytes
                              nil)

.dataUsingEncoding は NSString から NSData を作成し、.bytes はデータへの Pointer を作成します。

道徳:そうらしい

.dataUsingEncoding(NSUTF8StringEncoding).bytes

RubyMotion では、

.pointer for an NString
于 2013-08-13T22:29:50.380 に答える