2016-06-21 55 views
0

爲什麼我們不能在NSCalendar *cal = [[NSCalendar alloc] init];中使用init方法,因爲init是每個類都有的實例方法? Xcode中給出的消息: 爲「init」已明確標記爲不可用在這裏爲什麼我們不能在NSCalendar * cal = [[NSCalendar alloc] init]中使用init方法;

+2

Apple已經用這種方式標記了它,因爲'NSCalendar'有一個指定的初始化程序,它需要一個日曆標識符。他們不希望你使用'init',因爲它不會被正確初始化。 – Avi

回答

1

NSCalendar已經要啓動這樣的:

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

沒有指定什麼樣的日曆你想,實例會無用。這是框架如何阻止您初始化無用的對象。

+0

這有幫助,謝謝..我使用Xcode 7.3.1它說: 'NSGregorianCalendar'已棄用:先在OS X 10.10中棄用 - 使用NSCalendarIdentifierGregorian –

相關問題