欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:Objective-C學習

柚子快報邀請碼778899分享:Objective-C學習

http://yzkb.51969.com/

通過.m擴展名表示文件使用的是Objective-C代碼,應由Objective-C編譯器處理

#import語句

#import語句來引用頭文件,保證頭文件只被包含一次,無論這條命令在該文件中出現(xiàn)了多少次

(C語言中:#ifdef來避免一個文件包含另一個文件而后者又包含前者;objective-c用#import實現(xiàn))

框架

框架是一種把頭文件、庫、圖片、聲音等內(nèi)容聚集在一個獨立單元中的集合體。

蘋果公司框架集:Cocoa(包括Foundation和Application Kit)、Carbon、QuickTime、OpenGL

Foundation框架處理的是用戶界面之下的那些層的特性,比如數(shù)據(jù)結(jié)構(gòu)和通信機制

NSLog()和@“字符串”

作用和C中的printf()比較像,可以用print f()代替,但是NSLog()可以自動換行

NSString:@是本體

eg:NSLog(@"Hello,Objective-C!");

@意味著引號內(nèi)的字符應作為Cocoa的NSString元素來處理

NSString支持的功能:長讀、與其他字符串比較、將自身換成整型值或者浮點值

布爾類型

?C:true false

Objective-C:YES NO ? ? ? ?占8位

實際上是一個signed char類型 通過#define將YES定義為1 NO為0

如果是一個更大的整型值賦給了BOOL 那么取低8位

面向?qū)ο?/p>

OOP:面向?qū)ο缶幊?/p>

對象:一種包含值和指向其類的隱藏指針的結(jié)構(gòu)體

實例:對象的另一種稱呼

“間接”:編寫一段代碼來完成別的任務(wù)

OOP中,不再重點關(guān)注函數(shù),專注數(shù)據(jù);數(shù)據(jù)通過間接方式引用代碼,代碼可以對數(shù)據(jù)進行操作。

id:是一種 泛型,可以用來引用任何類型的對象?

[]:通知某個對象該去做什么,方括號中第一項是對象,其余部分是需要對象執(zhí)行的操作

(??發(fā)送消息/調(diào)用方法)

接口:類為對象提供的特性描述

實現(xiàn):使接口能正常工作的代碼

@interface Circle:新類Circle的接口

-:方法的聲明

- (void) setBounds: (ShapeRect) bounds;

-(void):聲明一個新方法 返回值為void

setBounds: :setBounds是方法名 ????????‘:'是說后面會出現(xiàn)參數(shù)

(ShapeRect) bounds:參數(shù)名和參數(shù)類型

如果有參數(shù)就用冒號,如果沒有就不需要

@implementation ? ? ? ?使對象能運行的代碼位于@implementation中

類名出現(xiàn)在@implementation后 結(jié)尾不需要分號 ? ? ? ?方法后也不需要

@implementation Circle

-(void) setFillCollor: (ShapeColor) c

{ fillColor = c;

}

不必按照interface的順序來,而且可以新寫 當作似有方法

接口是展示類的構(gòu)造,實現(xiàn)是實現(xiàn)接口聲明的方法

繼承

用于聲明新類的的語法:

@interface Circle: NSObject

冒號后邊的標識符是需要繼承的類

超類/父類:繼承的類

子類/孩子類:執(zhí)行繼承的類

繼承的方法調(diào)度:

先在子類中查找相應的方法 ,如果找不到,就到對象的超類中找,以此類推,在繼承鏈中尋找,如果在最頂層NSObject類中也沒找到,就會出現(xiàn)一個運行時錯誤,以及編譯時的警告信息

如何訪問實例變量:

?重寫方法:

正常:父類的方法為空,子類的方法進行定義,直接調(diào)用重寫后的方法

0super:既能重寫方法的實現(xiàn),又能調(diào)用超類中的實現(xiàn)方法

[super setFillerColor: c]

向super發(fā)消息的時候,實際上是在請求向該類的超類發(fā)送消息,如果超類中沒有定義該消息,就會繼續(xù)向繼承鏈的上一級中查找

復合

建立類之間的關(guān)系,組合多個對象,讓他們分工協(xié)作

accessor:讀取或者改變某個對象屬性的方法

getter:通過對象自身訪問對象屬性的方法

繼承和復合:

繼承是:is a

復合是:have a ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

源組織文件

.h文件:存放接口部分代碼:@interface指令、公共struct定義、enum常量、@defines、extern

.m文件:實現(xiàn)內(nèi)容:@implementation指令、全局變量的定義、私有struct? ? ? ? ? ? ?

如果擴展名是.mm:編譯器會認為是Objective-C++編寫的代碼,可以同時使用C++和Objective-C來編程

@class:前向引用

告訴編譯器:trust me? 以后自然會知道這個是什么;也可以循環(huán)引用如果在A. h 文件中使 用@class?B , 在 B . h 中 使 用@class A , 那 么 這 兩 個 類 就 可 以 互 相 引 用 了 。

引用子類的時候不能使用@class ,要用@import? ? ? ? ? ? ? ? ? ? ?

Runtime

運行時 程序在運行的時候可以改變結(jié)果(引進新函數(shù) 刪除存在的函數(shù))

runtime就是一組API

.m文件執(zhí)行clang -rewrite-objc main.m會生成.cpp文件 即編譯后的文件

屬性和對象沒有存在在實例對象里,只存在在類對象里

SEL:方法編號

IMP:函數(shù)指針,保存了方法的指針

Method:SEL,IMP,類型描述字符串

類的動態(tài)配置

消息傳遞 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

消息的發(fā)送

找到IMP

objc——msgSend:消息的接受者,消息的方法名,

消息的轉(zhuǎn)發(fā)

找不到IMP后的一系列操作

???????

?

柚子快報邀請碼778899分享:Objective-C學習

http://yzkb.51969.com/

文章鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18626973.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄