Objective C学习总结(二)
總結(jié)一犯了個(gè)錯(cuò)誤,自己先總結(jié)反思下
總結(jié)意在使記憶更深刻,而不是拿出來(lái)作秀的,簡(jiǎn)單明了即可,不能廢話太多。
總結(jié)(一)里回顧了.h文件中的類的說(shuō)明
這里回顧.m文件中實(shí)現(xiàn)接口的函數(shù)體
(之所以用.m來(lái)做擴(kuò)展名,m代表message,愿意為objective-c是基于消息的)
和c/c++一樣,obj-c的.m文件,開(kāi)始也是引入頭文件部分
c/c++用的是?
#include
obj-c則是
#inport
書(shū)上說(shuō)#inport要優(yōu)于#include,真假其實(shí)不重要,無(wú)所謂的事情。
關(guān)于是
#inport "頭文件.h"
還是
#inport <頭文件.h>
很容易理解,和c/c++,標(biāo)準(zhǔn)庫(kù),系統(tǒng)等頭文件用<>,自定義的用的”“。
@implementation 類名 @end這個(gè)區(qū)域內(nèi)是放類接口具體實(shí)現(xiàn)的,如下:
#import "Recipient.h"@implementation Recipient- (id) hello {printf("Recipient says hello!\n");return self; }@end 這里實(shí)現(xiàn)的是類Recipient的hello接口。vc里,用 :: 來(lái)標(biāo)記具體的函數(shù)是屬于哪個(gè)類的。而obj-c則是通過(guò)@implementation來(lái)標(biāo)記。這兩者有何不同,有什么優(yōu)劣之分嗎?
簡(jiǎn)單的例子代碼:
#import<Foundation/Foundation.h>int main(int argc, char *argv[]){NSAutoreleasePool * pool = [NSAutoreleasePool new];NSLog(@"Hello World!");[pool drain];return 0; } main函數(shù)同c/c++,但函數(shù)調(diào)用就不太一樣了 obj-c里,據(jù)說(shuō)不是函數(shù)調(diào)用,而是向某個(gè)對(duì)象發(fā)送消息。一切的一切的一切的流程都是基于消息的(這也就是為啥文件擴(kuò)展名用.m) NSAutoreleasePool * pool = [NSAutoreleasePool new]; 這句代碼用c/c++來(lái)解釋,就是 NSAutoreleasePool * pool = new NSAutoreleasePool; 只是函數(shù)的調(diào)用,變成了消息的傳遞。這樣做的好處是,可以更靈活,一個(gè)類可以接收或者轉(zhuǎn)發(fā)自己未定義的消息。而如果函數(shù)調(diào)用的話,編譯就會(huì)報(bào)錯(cuò)。 感覺(jué)這樣做,是要比c/c++好。 NSLog(@"Hello world!"); NSLog,就相當(dāng)于MessageBox,只是box是彈出,這個(gè)是輸出信息。 這里@是告訴編譯器,后邊的字符串,當(dāng)做一個(gè)NSString來(lái)處理轉(zhuǎn)載于:https://www.cnblogs.com/samuraiboy/archive/2011/06/14/2080611.html
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的Objective C学习总结(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 优秀的SharePoint 2013开发
- 下一篇: 从IRP说起