cuốn sách gpt4 ai đã làm

ios - 使用 CF -> NS 类的 Swift casting 语句

In lại Tác giả: Walker 123 更新时间:2023-11-29 01:44:13 26 4
mua khóa gpt4 Nike

在尝试集成 Address Book 框架并将 CF 类型转换为 NS 类再转换为 Swift 类时,我注意到了一些奇怪的事情:

ABRecordCopyCompositeName(record)?.takeRetainedValue() as? NSString

trở lại không

ABRecordCopyCompositeName(record)?.takeRetainedValue() as NSString?

trở lại Optional("John Smith")

我的问题是这不是吗? NSString 同义 as NSString?作为? NSString? (如果是,为什么不呢?)

Vì vậy,ABRecordCopyCompositeName(record)?.takeRetainedValue() as? NSString应该相当于ABRecordCopyCompositeName(record)?.takeRetainedValue() as NSString?作为? NSString这应该返回“John Smith”。

(这适用于 iOS 8.3,但 iOS 8.4 破坏了我的地址簿功能。)

câu trả lời hay nhất

as (NS)String?没有受支持的语法,即使它可能以某种方式工作。
您可以强制 ( as! ) 或可选 ( as? ) 或者您可以桥接 ( as ) 并且类型后没有感叹号/问号。

ABAddressBookCopyArrayOfAllPeople()trở lại Unmanaged!ABRecordCopyCompositeName()trở lại Unmanaged! ,这两种类型都是未包装的可选类型,所以在调用 takeRetainedValue() 之后你可以桥接到NSString

ABRecordCopyCompositeName(record).takeRetainedValue() as NSString

或进一步Sợi dây

ABRecordCopyCompositeName(record).takeRetainedValue() as NSString as String

关于ios - 使用 CF -> NS 类的 Swift casting 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32101177/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress