IOS 開發之Object-C中的對象詳解
前言
關於C語言的基礎部分已經記錄完畢,接下來就是學習Object-C了,編寫oc程序需要使用Foundation框架。下面就是對oc中的對象介紹。
對象
對象和結構類似,一個對象可以保存多個相關的數據。在結構中,我們稱這些數據為成員。而在對象中,稱這些數據為實例變量。除了這些以外,對象和結構不用之處在於,對象還可以包含一組函數,並且這些函數可以使用對象所保存的數據,這類函數稱為方法。
類
類(class)負責描述某個特點類型的對象,其中包括方法和實例變量。類可以描述以下兩種對象:
一個類定義了一種對象,同時它也可以用來創建這種對象。類既是對象的原型,又是生產對象的工廠。
實例
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSDate *today=[NSDate date]; NSLog(@"%p",today); } return 0; }
上面程序中 等號(=)左邊是變量today,變量前面的*說明它是一個指針,這個指針保存著NSdate實例在內存中的地址。賦值運算符的右邊是返回了NSDate實例的地址。整個過程稱為消息發送。
方法和函數類似。根據指令執行相應的功能。oc中,想要執行方法裡的代碼,首先需要發送一條消息給包含這個方法的對象或類。
上面的程序中NSDate類中有一個date方法,因此,我們向NSDate類發送了date消息,讓它執行date方法。
消息發送必須寫在一對方括號裡,並且必須包含接受方和選擇器。
如下面格式:
修改程序,如下:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSDate *today=[NSDate date]; NSLog(@"today=%@",today); } return 0; }
輸出結果:
today=2016-12-06 00:02:59 +0000
獲取到NSDate的實例,這時就可以給它發送消息了,如下程序:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSDate *today=[NSDate date]; double seconds=[today timeIntervalSince1970]; NSLog(@"seconds=%f",seconds); } return 0; }
輸出結果:
seconds=1480982760.070326
timeIntervalSince1970的作用是會算出現在的時間和1970年1月1號12:00 AM(GTM)之間的時間差。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!