Ваш код неверен. Нет точки разбора даты и сохранить ее как объект Date.
Вы можете отформатировать объект даты календаря, когда хотите отобразить его, и сохранить его как строку.
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
String inActiveDate = null;
try {
inActiveDate = format1.format(date);
System.out.println(inActiveDate );
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Objective-C имеет __attribute__((availability))
дольше, чем он имел @available
. Чтобы заставить это работать, компилятор Objective C слабо связывает символы, которые не доступны в цели развертывания. Это означает, что компиляция всегда завершается успешно, а запуск вашего приложения успешен, но символ будет НЕДЕЙСТВИТЕЛЕН во время выполнения, если он недоступен.
В зависимости от того, что это такое, вы получите более или менее изящную деградацию, когда попытаетесь ее использовать:
NS_AVAILABLE_MAC(...) @interface Foo @end
int bar NS_AVAILABLE_MAC(...);
int baz(int frob) NS_AVAILABLE_MAC(...);
if ([Foo class]) { /* Foo is available */ }
if (&bar) { /* bar is available */ }
if (&baz) { /* baz is available */ }
В вашем случае:
Reader *tmp = [[Reader alloc] init];
tmp
будет [ 115], потому что это будет то же самое, что и [[nil alloc] init]
.
Директива @available
была добавлена относительно недавно в Objective-C. Теперь можно использовать @available
в Objective-C так же, как вы используете #available
в Swift. Однако, чтобы сохранить обратную совместимость, возможно, никогда не будет ошибкой во время компиляции (при уровнях ошибок по умолчанию) пытаться использовать символ, который может быть недоступен для цели развертывания в Objective-C.