Objective-C學習筆記第二章對C的擴展

第二章對C的擴展

一、構建Hello Objective-C

建立項目後在.m結尾文件內

代碼如下:

#import <Foundation/Foundation.h>

int main(int argc, const char *argv[])

{

         NSlog(@"Hello, Objective-C");

         return(0);

}

 

代碼解讀

#import    使用頭文件來包含元素聲明,元素可以包括結構體、符號常量、函數原型

                   #import可以保證頭文件只被包含一次,在C語言中一般使用#ifdef命令實現,

                      Objective-C中也可使用#include實現不過一般都用#import

NSlog()@"字符串"

                   NSlog()用於向控制檯輸出,C語言中使用printf()向控制檯輸出

                   @"字符串"表示引用的字符串將作爲CocoaNSString來處理

                   必須向NSlog()傳遞@"字符串",否則將會報警

NSlog()格式化字符串

                   %d表示數字,%@表示字符串,%s表示非Cocoa規格的字符串

                   NSLog (@"are %d and %d different? %@", 5, 5, YES);

NSString的功能:

                   告知其長度

                   自身一其他字符串比較

                   將自身轉換爲整型值或浮點值

BOOL類型

                   它具有YES(1)NO(0)

                   Objective-C中提供了BOOL類型和Cbool類並存,並且年長10餘年

                   在編寫Cocoa代碼中必須要使用BOOL類型

main(int argc, const char *argv[])

                   argv中保存用戶提供的參數,argv[0]保存程序名稱

                   argc提供參數的數組長度,爲1時沒有參數

調出控制檯的快捷鍵:

                   Start+Shift+R 或者在菜單Run中選Console

 

BOOL類型示例代碼

#import <Foundation/Foundation.h>

 

// returns NO if the two integers have the same

// value, YES otherwise

 

BOOL areIntsDifferent (int thing1, int thing2)

{

         if (thing1 == thing2) {

              return (NO);

         } else {

              return (YES);

}       

        

} // areIntsDifferent

 

 

// given a YES value, return the human-readable

// string "YES". Otherwise return "NO"

NSString *boolString (BOOL yesNo)

{

         if (yesNo == NO) {

              return (@"NO");

         } else {

              return (@"YES");

         }

        

} // boolString

 

 

int main (int argc, const char *argv[])

{

         BOOL areTheyDifferent;

        

         areTheyDifferent = areIntsDifferent (5, 5);

        

         NSLog (@"are %d and %d different? %@",

                 5, 5, boolString(areTheyDifferent));

        

         areTheyDifferent = areIntsDifferent (23, 42);

        

         NSLog (@"are %d and %d different? %@",

                 23, 42, boolString(areTheyDifferent));

        

         return (0);

        

} // main

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