【问题标题】:Pointers in RubyMotion vs Pointers in MacRubyRubyMotion 中的指针与 MacRuby 中的指针
【发布时间】:2013-08-13 06:37:10
【问题描述】:

这适用于 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)

我错过了什么?

【问题讨论】:

    标签: macos cocoa keychain rubymotion macruby


    【解决方案1】:

    这是有效的

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

    .dataUsingEncoding 从 NSString 生成 NSData,.bytes 生成指向数据的指针。

    道德:似乎

    .dataUsingEncoding(NSUTF8StringEncoding).bytes
    

    在 RubyMotion 中相当于

    .pointer for an NString
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 2016-10-30
      • 2021-05-06
      • 2011-08-04
      • 2021-11-26
      • 2021-08-14
      相关资源
      最近更新 更多