Assuming -[SettingsTableGroupCell targetTableID] returns a string, the following results in prefix being a SettingsTableGroupCell and not a String:
let prefix = [@cast(SettingsTableGroupCell, cell) targetTableID];
// Error: Argument of type 'SettingsTableGroupCell' is not assignable to parameter of type 'String'
[foo selectPrefix: prefix];
Assuming
-[SettingsTableGroupCell targetTableID]
returns a string, the following results inprefix
being aSettingsTableGroupCell
and not aString
: