IOS之Objective-C學習筆記(一)


      最近開始學習Objective-C,所以做寫筆記,方便以后自己復習,也方便大家一起交流~

1.Objective-C實現第一個Hello YUZHIBOYI程序:

   Xcode新建工程(相信這個不難做,這里不多說),保存工程名為:Hello -YUZHIBOYI.m。程序如寫:

[plain] view plaincopy
  1. #import<Foundation/Founation.h>  
  2. int main(int argc, const char*argv[ ]) {  
  3.   NSLog(@"Hello,YUZHIBOYI!!!");  
  4.    return(0);  
  5. }//在Xcode控制台可以看到輸出:Hello,YUZHIBOYI!!!  

    現在來詳細分析一下這個程序的結構:

    (1)首先可以看到第一行#import<Foundation/Foundation.h>,意思是使用頭文件來包含元素聲明,#importGCC編譯器提供的,其實也可以使用像C一樣#include,不過很少這樣用,因為如果用#include有可能出現重復包含頭文件的情況,而#import可保證頭文件只被包含一次,而不論次命令實際上在文件中出現多少次。

    (2)Foundation是一個框架,它是Cocoa的組成框架之一,這個框架主要是處理用戶界面之下的層中的特性,比如數據結構和通信機制。Foundation是一個主頭文件。

    (3)NSLog(@"Hello,YUZHIBOYI!!!");跟C里面的printf用法類似,首先來看看NS的含義,這個前綴告訴你的函數來自Cocoa而不是其他工具包,然后是@這個符號的作用,這個符號是Objective-C在標准C基礎上添加的特性之一,在字符串前加一個符號,表示引用的字符串應該作為CocoaNSString元素來處理。

其他部分和C的語言基本一樣,不多作解釋~

2.布爾類型:

   Objective-C的布爾類型BOOL,它具有YESBNO值,在編寫程序的時候可以C里的布爾類型與Objective-C的布爾類型共存,但值得注意的是編寫Cocoa代碼時要使用BOOL

   (1)BOOL實際上是一種對帶符號類型的定義,它使用8位存儲空間,YES定義為1NO定義為0.

   (2)應該注意一個字節長度問題是:當將一個長於1字節的整形值(如int值)賦給一個BOOL變量,這時只有低位字節會用作BOOL值。

   (3)例子,一個比較兩個整形數是否不同,不同返回YES,否則NO

   

[plain] view plaincopy
  1. #import<Foundation/Foundation.h>  
  2.      BOOLareDifferent(int a,int b){  
  3.         if(a == b){  
  4.             return(NO);   
  5.         }else{  
  6.             return(YES);  
  7.         }  
  8.      }//判斷是否不同  
  9.    NSString*boolString(BOOL yesNo){  
  10.       if(yesNo == NO){  
  11.           return(@"NO");  
  12.        }else{  
  13.            return(@"YES");  
  14.         }  
  15.    }//返回YSE或NO  
  16.    int main(int argc,const char *agv[ ]){  
  17.        BOOLareABDifferent;  
  18.       areABDifferent = areDifferent(3,3);  
  19.        NSLog(@"are %d and %d different? %@", 3,3,boolString(areABDifferent));  
  20.       areABDifferent = areDifferent(8,9);  
  21.        NSLog(@"are %d and %d different? %@", 8,9,boolString(areABDifferent));  
  22.        return(0);  
  23.    }//運行結果為:are 3 and 3 different? NO  
  24.                               are8 and 9 different? YES  

      這里唯一值得注意的是:NSlog()的字符串結尾,可以看到另一個@符號,這里表現為%@,它的意思是,表示boolString()返回一個NSString指針,printf()不能使用NSString,所以沒我們能夠使用的格式說明符NSlog()的編寫者添加%@格式說明符。

      好!今天就寫那么多,歡迎大家一起討論,轉載請注明:http://blog.csdn.net/yuzhiboyi

   

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: