ios - Swift casting statement with CF -> NS classes -
while trying integrate address book framework , converting cf types ns classes swift classes, noticed strange:
abrecordcopycompositename(record)?.takeretainedvalue() as? nsstring
returns nil
abrecordcopycompositename(record)?.takeretainedvalue() nsstring?
returns optional("john smith")
my question isn't as? nsstring synonymous as nsstring? as? nsstring? (if so, why not?)
therefore, abrecordcopycompositename(record)?.takeretainedvalue() as? nsstring should equivalent abrecordcopycompositename(record)?.takeretainedvalue() nsstring? as? nsstring should return "john smith".
(this working on ios 8.3, ios 8.4 broke addressbook feature.)
as (ns)string? no supported syntax, might work in way.
either can cast forced (as!) or optional (as?) or can bridge (as) , there's no exclamation/question mark after type.
abaddressbookcopyarrayofallpeople() returns unmanaged<cfarray>! , abrecordcopycompositename() returns unmanaged<cfstring>!, both types unwrapped optionals, after calling takeretainedvalue() can bridge nsstring
abrecordcopycompositename(record).takeretainedvalue() nsstring or further string
abrecordcopycompositename(record).takeretainedvalue() nsstring string
Comments
Post a Comment