顯示具有 教學 標籤的文章。 顯示所有文章
顯示具有 教學 標籤的文章。 顯示所有文章

2014年12月13日 星期六

NSDate 相關的 method

下面這些是關於NSDate所有的整理自蘋果官方的文件,推薦看網頁版,網頁版的現在設計得互動性非常高,一開始會把每個method列出來,如果想要細看哪個method的話,再點下去所有的細節就會通通展開來,包括:
1定義(Declaration)
2參數(Parameters)
3回傳值(Return Value)
4Import Statement
5可使用版本(Availability)
6探討(Discussion)
7相關(See Also)
另外也可以選擇要顯示的語言,Objective-C還是Switf或是兩個都顯示。

關於NSDate背後的架構(是這樣說嗎!?找不到一個適當的詞@@)可以去看官方文件,因為我自己也還沒有完全看懂,所以就不在這裡做翻譯了Orz

大部份的method都可以望文生義,如果有不懂得再去看官方文件就可以了,我這裡只是整理了所有的mehtod,讓我們可以看得更一目了然。前半段是我目前最常用的method。

Creating and Initializing Date Objects


Comparing Dates


Getting Time Intervals


Adding a Time Interval


Getting Temporal Boundaries


+ dateWithTimeIntervalSinceReferenceDate:
+ dateWithTimeIntervalSince1970:
- initWithTimeIntervalSinceReferenceDate:
- initWithTimeIntervalSince1970:
+ timeIntervalSinceReferenceDate
  timeIntervalSinceReferenceDate
  timeIntervalSince1970
其中這幾個函數我還不是很搞得清楚到底是做什麼用途的,以initWithTimeIntervalSinceReferenceDate:為例,官方文件是這樣說明的:Returns an NSDate object initialized relative the first instant of 1 January 2001, GMT by a given number of seconds.,翻成中文就是:會得到一個以西元兩千年一月一號零分零秒為開始,(由使用者輸入)往後推幾秒的時間點,我實際使用了一下,如果輸入下列這行程式
NSDate *date = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:10];
顯示結果如下:
確實照著文件的說明實現了,可是我的問題是這可以幹嘛??我現在還不知道這個函數存在的意義,如果我以後知道了,我會在這裡更新。2014/12/14



後面這幾個是我比較不常用的

Representing Dates as Strings


Constants


Notification





蘋果官方文件:NSDate Class Reference


NSDate Manipulation Made Easy in iOS 8

2014年12月6日 星期六

NSDate, NSTimeInterval, NSCalendar, NSDateComponents, NSDateFormatter基本教學

下面是一些跟時間相關的class,以及其簡單的使用方法,而每個class背後的原理,我會另外分幾篇網誌來寫。

NSDate

NSDate儲存的是世界標準時間(UTC),是絕對時間,當要輸出時間的時候會(註一)根據當地時區轉換成當地的時間。
下面這段程式是讀取現在時間的程式碼。

NSDateFormatter

說到NSDateFormatter,就不得不提關於NSDateFormatter 的二三事這篇網誌,這篇網誌把很多(註二)參數都整理出來了。
下面是NSDateFormatter的使用方式。

設定NSDateFormatter也可以使用Xcode提供的幾種制式化格式


NSTimeInterval

特別要注意NSTimeInterval的資料型態是double。


NSCalendar, NSDateComponents

下面三種方法得出來的結果都一樣,只是取用的方式不同。(註三)



註一:我現在還不完全清楚它的原理,不知道是「會」根據當地時區作轉換,還是「需要」知道當地的時區來作轉換。2014/12/7
註二:我不知道是不是全部,一時沒時間去查,但我要用的話幾乎都在那篇裡找得到。2014/12/7
註三:我還搞不清楚差在哪,我查到後這裡會更新。2014/12/7