diff --git a/Pickers/ActionSheetStringPicker.m b/Pickers/ActionSheetStringPicker.m index 033fba0ed..b9d00ff46 100644 --- a/Pickers/ActionSheetStringPicker.m +++ b/Pickers/ActionSheetStringPicker.m @@ -131,6 +131,22 @@ - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSIn return self.data.count; } +- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { + id obj = (self.data)[(NSUInteger) row]; + + // return the object if it is already a NSString, + // otherwise, return the description, just like the toString() method in Java + // else, return nil to prevent exception + + if ([obj isKindOfClass:[NSString class]]) + return obj; + + if ([obj respondsToSelector:@selector(description)]) + return [obj performSelector:@selector(description)]; + + return nil; +} + - (NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component { id obj = (self.data)[(NSUInteger) row];