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

Popular posts from this blog

html - Firefox flex bug applied to buttons? -

html - Missing border-right in select on Firefox -

c# - two queries in same method -