Если у вас будет параметр, который принимает несколько типов, вы можете безопасно сделать это только с помощью объектов Obj-C, что означает использование id
в качестве типа. Вы не можете безопасно смешивать id
с float
, integer
и т. Д.
Если вы обернули все float
с и int
с за NSNumber
с, у вас может быть такой метод:
- (NSString *)formatSQL:(id)obj
{
if ([obj isKindOfClass:[NSString class]]) {
// Format as a string
}
else if ([obj isKindOfClass:[NSNumber class]]) {
// Further processing will be required to differentiate between ints and floats
}
}
Есть несколько предостережений при использовании isKindOfClass:
, но это должно послужить хорошей отправной точкой.