小编Dam*_*ien的帖子

使用Swift查询iOS Keychain

我使用Swift转换Keychain查询结果.

我的请求似乎正在起作用:

let queryAttributes = NSDictionary(objects: [kSecClassGenericPassword, "MyService",     "MyAccount",       true],
                                   forKeys: [kSecClass,                kSecAttrService, kSecAttrAccount, kSecReturnData])


dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
    var dataTypeRef : Unmanaged<AnyObject>?
    let status = SecItemCopyMatching(queryAttributes, &dataTypeRef);

    let retrievedData : NSData = dataTypeRef!.takeRetainedValue() as NSData
    *** ^^^^can't compile this line^^^^
})
Run Code Online (Sandbox Code Playgroud)

我的问题是,代码无法编译:

Bitcast requires both operands to be pointer or neither
  %114 = bitcast %objc_object* %113 to %PSs9AnyObject_, !dbg !487
Bitcast requires both operands to be pointer or neither
  %115 = bitcast %PSs9AnyObject_ %114 to i8*, !dbg !487
LLVM …
Run Code Online (Sandbox Code Playgroud)

keychain ios swift

17
推荐指数
2
解决办法
8566
查看次数

如何保存实现Codable的自定义对象

现在,Swift 4可以更轻松地对JSON或属性列表进行编码/解码.

但是我找不到如何使用Codable对Data进行编码,而不使用Objective-C方法initWithCoderencodeWithCoder.

考虑这个简单的类:

struct Question: Codable {
    var title: String
    var answer: Int
    var question: Int
}
Run Code Online (Sandbox Code Playgroud)

我怎么能对数据进行编码来使用CodingKeys,而不是initWithCoderencodeWithCoder

编辑:我还需要能够使用NSKeyedArchiver反序列化以前保存在userdefaults中的对象.

ios swift swift4

8
推荐指数
3
解决办法
7665
查看次数

标签 统计

ios ×2

swift ×2

keychain ×1

swift4 ×1