《Objective-C學習》: Objective-C對於C的擴展

Objective-C基礎語法

首先我們先來看看一個示例程序

#import <Foundation/Foundation.h>
 
@interface SampleClass:NSObject
- (void)sampleMethod;
@end
 
@implementation SampleClass
 
- (void)sampleMethod {
   NSLog(@"Hello, World! \n");
}
 
@end
 
int main() {
   /* my first program in Objective-C */
   SampleClass *sampleClass = [[SampleClass alloc]init];
   [sampleClass sampleMethod];
   return 0;
}

  該示例程序通過繼承NSObject這個所有對象的基類,並通過構建一個名爲“sampleMethod”的方法,實現了基本的“Hello, World!”的打印。其中NSLog類似於C語言中的printf,是一個用於打印的函數,在程序的註釋方面,Object-C繼承了C語言經典的代碼註釋的方式,使用“/……/”表示註釋,使用 // 亦可。

變量的聲明

  變量的聲明和C語言中有關變量的聲明類似,(變量類型)(變量名)=(變量的值)。變量最基本的形式是標量,標量是一次只能存儲一個值的變量。整數、浮點數和字符都是標量。標量有不同的預定義內存空間和可以存儲的值得大小。在決定使用什麼類型定義變量之前應該知道這些類型的限制。
  Object-C中的空值:nil、Nil、NULL、NSNull。在Object-c的變量定義中會經常使用到NULL這個賦值手段,相對於其他語言,Object-C中所使用到的空指針亦或是空值會較爲複雜,有nil、Nil、NULL和NSNull多種定義的方式。接下來來看看這幾種定義方式的區別之處在哪:

nil:指向OC中對象的空指針;

Nil:指向OC中類的空指針;

NULL:指向變量類型的空指針;

NSNull:在集合對象中,表示空值的對象;

Sunmary:
nil是一個對象的值,而NULL是一個值。

文件拓展名

拓展名 內容類型
.h頭文件 頭文件包含類,類型,函數和常量的聲明;
.m源文件文件 這是典型的源代碼文件拓展名,可以包含Object-C和C代碼;
.mm 源代碼文件

文件的引用

  在Object-C中提供了兩種包含頭文件的方法,方法一:使用#include選項;方法二:使用#import選項,使用這些選項可以確保相同的文件只會被包含一次,在Object-C中更傾向於使用#import來進行文件的引入。在C語言中我們使用#ifdef命令的方案來規避一個文件的重複包含,在object-c中使用#import命令來實現。該命令可以保障頭文件只被包含一次,無論次命令在該文件中出現多少次。

數據類型-布爾類型(BOOL)

  C語言擁有布爾數據類型bool,它具有TRUE 和FLASE 兩個值,object-c也提供了一個相似類型BOOL,它具有YES 和NO兩個值。Object-c中的bool實際上是一種對帶符號的字符類型(signed char)的類型定義(typedef),它使用8位的儲存空間。通過#define指令把YES定義爲1, NO定義爲0。Object-c並不會將BOOL作爲僅能保存YES 和NO值得真正布爾類型來進行處理。編譯器仍將BOOL認作爲8位二進制數,YES 和NO值只是一種習慣性的一種理解,如:如果不小心將一個大於1字節的整形值(比如short or int)賦值給一個BOOL類型的變量,那麼只有低位字節會用做BOOL值。如果該低位字節剛好爲0(比如說8960, 寫成十六進制爲0x2300),則BOOL值將會被認作是0,即NO值。

字符打印函數與NSLog()

   在使用C等語言進行編程之時,我們最爲熟悉的應當就是 printf() 函數了,在進行第一次代碼編寫時肯定少不了 printf(“Hello world!”) 。在Objective-C中NSLog函數的作用和printf的作用相似。如標題所言,Objective-C是對於C有一些新特性的拓展,printf() 函數還是能夠繼續使用的,不過既然是增加了新的特性,那肯定有些是你沒見過的船新版本,NSLog() 函數擁有時間戳、日期戳、自動附加換行符(‘\n’)等新的特性。

object-c中的“[]”的使用

  對象的引用:Object-c中的方括號用於通知某個對象該去做什麼。方括號中第一項是對象,其餘部分是需要對象執行的操作。在object-c中。通知對象執行某種操作稱爲發送消息(有些人也稱之爲“調用方法”)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章