初學Objective-C語言需要了解的星星點點
一.Xcode,Objective-C,Cocoa說的是什麼東西?
Xcode:你可以把它看作是一種開發環境,就像Visual Studio或者Netbeans或者SharpDevelope類似的東東。你可以將Interface Builder比作Visual Studio中用來畫界面的那部分功能單獨提取出來的程序。
Objective-C:當然是一種編程語言-.- 就像C,C++,Java一樣滴~
Cocoa:是一大堆函數東西,你只要會用就行。對,就是當年喬幫主親口說的“提高編寫效率,不是不斷編程提高編程能力,而是去消滅70percent的代碼”。庫,就像MFC或者.NET 或者Swing這類東東。人家已經寫好的一堆現成的
二,Objective-C是神馬?
下面列出初學Objective-C會提出的問題:
問題一:我在程序中看到大量的減號,中括號和以前見到的有什麼區別,還有NS***是神馬-.-
1.減號(或者加號)
減號表示一個函數或者方法或者消息的開始。如:
#import<Foundation/Foundation.h>
#import"Student.h"
@implementation Student
-(int)getAge{
return age;
}
-(void)setAge:(int)newAge{
age = newAge;
}
@end
2.中括號
中括號可以認為是調用你剛才寫的方法。如:
#import<Foundation/Foundation.h>
#import"Student.h"
int main(int argc,const char * argv[ ])
{
@autoreleasepool{
Student *stu = [Student alloc];
stu = [stu init];
}
return 0;
}
@end
3.NS***
史蒂夫 喬布斯當年被人擠兌出蘋果公司後創辦的一個公司NextStep,裡面一整套開發包很是讓科學家喜歡,現在的Mac OS就是用NextStep的函數庫。
這些NextStep開發者紀念性的將函數庫裡面所有的類NextStep縮寫打頭命名。就是NS***了,諸如:
NSLog
NSString
NSImage
NSURL
NSInteger
...
在學習時,你會經常看到:
NSLog(@"%d",myInt);
ne裡面的圖片
這句話主要是在console裡面跟蹤使用,你會在console裡面看到myInt的值(在XCode裡面運行的時候打開dbg窗口即可看到)。而我們在其他開發環境裡面可能會比較習慣使用MessageBox這種方式進行調試。
你還可以看到其他名字打頭的一些類,比如CF、CA、CG、UI等等,比如
CFStringTokenizer 這是個分詞的東東
CALayer 這表示Core Animation的層
CGPoint 這表示一個點
UIImage 這表示iPho
CF說的是Core Foundation,CA說的是Core Animation,CG說的是Core Graphics,UI說的是iPhone的User Interface……還有很多別的,等你自己去發掘了。
問題二:#import這類玩意是什麼?
1.#import
你可以把它認為如#include一樣的。
三,其他一些東西
1.id
Objective-C中有一種特殊的數據類型id。在Objective-C中一切數據都是指針形式保存。你獲得的就是這個對象在內存中的位置。
2.BOOL,YES,NO
你可以認為YES是c#或Java中的true,NO表示false。而實際上YES是1,NO是0,BOOL本身就是個char。
3.nill
Objective-C中的NULL就這麼樣寫,表示空指針。
4.為什麼是@"字符串"而不是"字符串"
"字符串"是C的字符串,@“字符串”是把C的字符串轉換成NSString的一個簡寫。
在需要NSString的地方才需要轉換,例如NSLog裡。
在需要C String的地方還是要用"字符串"的。
另外,@""是不支持中文的,NSLog(@"字符串")是絕對輸不出中文的。
四,總結
1.Objective -C 只是一門編程語言,不是火星語,只要我們用心學再配以恰當的方法,就能夠融會貫通。
2.將www.Cocochina.com加入收藏夾,看不明白代碼時,就來看看一些牛人的好文。
3.學習一門語言最好就是在用中學,這就和學外語一樣,你會說自然就會讀。給自己設立一個簡單的目標,比如做一個簡單的程序,然後一點點解決問題。這樣學習起來比只看例子快得多。