2016-06-21 8 views
0

Warum können wir die Methode init in NSCalendar *cal = [[NSCalendar alloc] init]; nicht verwenden, da init eine Instanzmethode ist, die jede Klasse hat? Xcode geben die Meldung: ‚init‘ hier markiert wurde ausdrücklich nicht verfügbarWarum können wir nicht die init-Methode in NSCalendar verwenden * cal = [[NSCalendar Alloc] init];

+2

Apple hat es auf diese Weise markiert, weil 'NSCalendar' einen designierten Initialisierer hat, der eine Kalenderkennung verwendet. Sie wollen nicht, dass Sie 'init' verwenden, weil es nicht richtig initialisiert wird. – Avi

Antwort

1

NSCalendar wie folgt eingeleitet werden muss:

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

Ohne Angabe, welche Art von Kalender Ihren wollen, würde der Fall sein, nutzlos. So verhindert das Framework, dass Sie nutzlose Objekte initialisieren.

+0

Dies half, danke..Ich benutze Xcode 7.3.1 es heißt: 'NSGregorianCalendar' ist veraltet: erste veraltet in OS X 10.10 - Verwenden Sie stattdessen NSCalendarIdentifierGregorian –

Verwandte Themen