一、oc簡介
1.c語言基礎上,增加了一層最小的物件導向語法
2.完全相容c語言
3.可以在oc**中混入c語言**,甚至是c++**
4.可以使用oc**開發mac os x平台和ios平台的應用程式
二、oc語法預覽
1.關鍵字
基本所有關鍵字都是以@開頭,如:
@inte***ce
、@implementation
、@end
@public
、@protected
、@private
、@selector
@try
、@catch
、@throw
、@finally
@protocol
、@optional
、@required
、@class
@property
、@synthesize
、@dynamic
self、
super、id
、_cmd
、__block
、__strong
、__weak
、2.字串以@開頭
比如@"hello"是oc的字串,而"hello"則是c語言的字串
3.其他語法
基本型別:char、int、float、double、bool(yes\no)
nil:相當於c語言中的null,也就是0
螢幕輸出:nslog(@"hello");
三、oc程式的開發過程
與c語言類似:
.m檔案--->編譯--->.o檔案--->鏈結--->a.out可執行檔案
四、oc的hello
1.**
#import
int main()
2.終端指令
編譯:cc -c main.m
執行:./a.out
3.nslog和printf的區別
nslog接受oc字串作為引數,printf接受c語言字串作為引數
nslog輸出後會自動換行,printf輸出後不會自動換行
使用nslog
需要#import
使用printf
需要#include
4.#import的作用
跟#include一樣用來拷貝某個檔案的內容
可以自動防止檔案內容被拷貝多次,也就是標頭檔案中不用加下面的預處理指令了
#ifndef
_stdio_h_
#define
_stdio_h_
#endif
5.foundation框架的作用
ø 開發oc
、ios
、mac
程式必備的框架
ø 此框架中包含了很多常用的api
(應用程式設計介面)
ø 框架中包含了很多標頭檔案,若想使用整個框架的內容,包含它的主標頭檔案即可
#import
6. bool的使用
bool型別的本質:
typedef
signed
char
bool
;bool
型別的變數有2
種取值:
yes、
no#define yes (bool)
1#define no
(bool)
0bool的輸出
(當做整數來用
)六、多個檔案開發
1.多個.檔案的開發(跟c語言的多個.c檔案的開發是一樣的)
1) 編寫3
個檔案 main.m
#import
"one.h"
intmain()
one.h
void
test();
one.m
#import
void
test()
2) 終端指令
編譯:cc
–c main.m test.m
–framework foundation
執行:./a.out
2. .m檔案和
.c檔案混用開發
1) 編寫3
個檔案main.m
#import
"one.h"
intmain()
one.h
void
test();
one.c
#include
<
stdio
.h>
void
test()
2) 終端指令
編譯:cc
–c main.m test.m
執行:./a.out
(沒有使用
foundation
框架的話,就不用
-framework foundation)
黑馬程式設計師 OC學習日記2
1 是否要生成set方法 若為唯讀屬性,則不生成 readonly 唯讀,只會生成getter的宣告與實現 readwrite 預設,同時生成setter與getter的宣告與實現 2 原子屬性 多執行緒,加鎖 nonatomic 高效能,沒有加鎖,執行緒不安全 atomic 低效能,加鎖,執行緒安...
黑馬程式設計師 OC基礎
asp.net unity開發 net培訓 期待與您交流!1.import的用途 1 跟 include一樣,拷貝檔案的內容 2 可以自動防止檔案的內容被重複拷貝 2.import nsobjcruntime.h中有nslog函式的宣告,一般用 3.foundation框架標頭檔案的路徑 4.主標頭...
黑馬程式設計師 OC封裝
物件導向的三大特性 封裝 繼承和多型 在開發過程中,考慮到安全性要求,我們一般不在成員變數名前面使用 public protected等關鍵字修飾,而是使用set方法來為物件提供成員變數的值。set方法的內部也可以對一些不合理的賦值進行篩選過濾。set方法的作用 為外界提供乙個設定成員變數值的方法 ...