2013-09-25 178 views
2

我聽說過iOS7中引入的NSCalendar上的函數。方法「不適用於iOS」

看看文檔,找不到它。也不在OS X文檔中。

功能是- (BOOL)isDate:(NSDate *)date1 equalToDate:(NSDate *)date2 toUnitGranularity:(NSCalendarUnit)unit即是在同一天這兩個日期/在同一個星期/月,等...

然而,當我嘗試使用它在Xcode 5.自動完成顯示它與通過一個紅色的刪除,然後當我真正使用它,我得到這個錯誤...

enter image description here

很奇怪的功能顯然是有我只是不能夠使用它。

任何人都可以闡明爲什麼會發生這種情況嗎?

回答

6

你從哪裏聽說過這種方法?這有可能是該方法的iOS 7

它是私有API的測試版中被刪除:__NSCFCalendar.h

+0

幾天前我看到一條推文。這就說得通了。噢,好吧,我想我們必須等一會兒才能使用它。多麼可怕的方法不能使用。 :( – Fogmeister

+4

在有關iOS 7的NSHipster文章的緩存版本中,有一個對此方法的引用(http://webcache.googleusercontent.com/search?q=cache:http://nshipster.com/ios7/),但它有已被刪除,最有可能的方法已公開在iOS 7的測試版之一,並可能在未來的版本中重新出現 –

10

可惜這不是適用於iOS,僅適用於OS X 10.9。您可以隨時通過rdar://14995171來告訴Apple您也希望在iOS上使用它。

如果您在NSCalendar.h看在了iOS 7 SDK,你會看到,自__NSCALENDAR_COND_IOS_7_0如果你看看在同一文件的頂部這些方法被標記爲可被定義爲

#if !defined(__NSCALENDAR_COND_IOS_4_0) 
#if NS_ENABLE_CALENDAR_NEW_API 
#define __NSCALENDAR_COND_IOS_4_0 4_0 
#define __NSCALENDAR_COND_IOS_5_0 5_0 
#define __NSCALENDAR_COND_IOS_6_0 6_0 
#define __NSCALENDAR_COND_IOS_7_0 7_0 
#else 
#define __NSCALENDAR_COND_IOS_4_0 NA 
#define __NSCALENDAR_COND_IOS_5_0 NA 
#define __NSCALENDAR_COND_IOS_6_0 NA 
#define __NSCALENDAR_COND_IOS_7_0 NA 
#endif 
#endif 

這目前評估爲NA,這意味着這些方法對於iOS「不可用」。

+1

謝謝,我很失望:( – Fogmeister

+1

@Fogmeister我也(因此原始雷達) –

+1

嘿,我想我會告訴你我的博客的方向,我只是在NSDate上創建了一個類似的工作方式... http://www.oliverfoggin.com/nsdate-isequaltodatetounitgranularity/希望你覺得它很有用 – Fogmeister

相關問題