См. приведенный ниже код. Он компилирует: -
int[] arr = new int[2];
System.out.println(arr.toString());
Теперь, на любом примитивном типе, вы не можете вызвать метод (toString()
), определенный в классе Object (или любой метод, если на то пошло). Итак, массив по существу, Object
..
ОК, вот вы: -
Из раздела JLS 4.3 : -
Существует четыре типа ссылочных типов: типы классов (§8), типы интерфейсов (§9), переменные типа (§4.4) и типы массивов (§10).
blockquote>И Раздел 10 : -
На языке программирования Java массивы являются объектами (§4.3.1), динамически создаются и могут быть назначены переменным типа Object (§ 4.3.3). Все методы класса Object могут быть вызваны в массиве.
blockquote>Итак, из первой цитаты
Array
на самом деле не класс .. Это другой тип .. Но, по существу, массивы являются объектами, хотя и не с некоторымиClass
, но они имеют типArray
. Поэтому они не являются экземплярами какого-либо класса и могут быть созданы объектамиarray
таким образом.
Нашел решение. Ключ состоит в том, чтобы вообще не вызывать setDateFormat
, и API в iPhone автоматически выберет соответствующий элемент для отображения на основе того, что указано в setDateStyle
и setTimeStyle
.
Вместо этого я бы попробовал следующий NSDateFormatter
API:
+ (NSString *)localizedStringFromDate:(NSDate *)date
dateStyle:(NSDateFormatterStyle)dateStyle
timeStyle:(NSDateFormatterStyle)timeStyle;
Примерно так:
self.creationDate.text = [NSDateFormatter localizedStringFromDate:creationTimeStamp
dateStyle:NSDateFormatterMediumStyle
timeStyle:NSDateFormatterShortStyle];
Это должно дать вам результат, который вы ищете, приведите в порядок код немного, и избавит вас от необходимости управлять ложными воспоминаниями.