OC

1. NSString前面NS是NextSTEP的縮寫(xiě).

2.面向?qū)ο缶幊蘋(píng)OP (ObjectOrientedProgramming)

3.接口在程序里叫數(shù)據(jù)接口

在網(wǎng)絡(luò)里叫網(wǎng)絡(luò)接口

4.成員可見(jiàn)度定義:

@public大家的

@product受保護(hù)的

@private私有的

5.接口部分標(biāo)志@interface@end一對(duì)

6.所有@的符號(hào)都是OC對(duì)C語(yǔ)言擴(kuò)展的東西

7.

-(void)sayHi; -號(hào)代表實(shí)例方法.void是返回值類(lèi)型.

+類(lèi)方法.

8.

-號(hào)方法必須由實(shí)例對(duì)象來(lái)調(diào)用,+號(hào)方法必須由類(lèi)來(lái)直接調(diào)用

9.NSLog=printfNSLog是C語(yǔ)言的函數(shù)

10.NSLog(@“sdfsdfsdf”);@后面叫字符串對(duì)象. %@替換對(duì)象的(替換進(jìn)去的肯定是文字信息)

112015-01-22 16:32:33.758 HelloOC[618:303]HELLO, WORLD

618是進(jìn)程號(hào),303線程號(hào)

12.

類(lèi)名大寫(xiě)開(kāi)頭

方法名和變量小寫(xiě)開(kāi)頭

13 #import導(dǎo)入oc基礎(chǔ)庫(kù)

14具有相同特征和行為的事物的抽象.類(lèi)的定義

15所有的類(lèi)都放在了全局區(qū)

alloc是把在全局去里的成員變量拷貝到堆里面一份

alloc所有的成員變量都有初值

16 void *p無(wú)類(lèi)型指針

17id是typedefvoid *id叫泛型指針id可以保存任何類(lèi)型的指針.

17不能簡(jiǎn)單的改變2個(gè)變量的值,而作用域約束

如果想在外部去修改2個(gè)局部變量的值,必須拿到地址.

18->指向標(biāo)示符

19父類(lèi):總類(lèi)子類(lèi):分類(lèi)的概念.而不是父親和兒子的概念(不是具體的實(shí)物)!

20給對(duì)象聲明空間的時(shí)候就賦初值

Person.h中:

@interface Person :NSObject

{

@public//如果下面沒(méi)給值,系統(tǒng)會(huì)自動(dòng)初始化.

NSString *_name;

NSString *_gender;

NSString *_hobby;

NSString *_hobby1;

int _age;

}

- (id)init1;

@end

Person.m中:

- (id)init1

{

_age = 18;

_name = @"HAHAHA";

return self;

}

main.m中:

Person *p =[[Person alloc] init1];

[p eat];

可見(jiàn)度是約束(標(biāo)示符)的訪問(wèn)權(quán)限,指的是標(biāo)示符符號(hào)的訪問(wèn)權(quán).

21

@public子類(lèi)可見(jiàn),外部也可見(jiàn)

@protected子類(lèi)可見(jiàn),外部不可見(jiàn)

@private子類(lèi)不可見(jiàn)(不允許訪問(wèn)),外部類(lèi)不可見(jiàn)

子類(lèi)可以繼承父類(lèi)的private后的屬性,但是不能訪問(wèn).

private不光要保護(hù)內(nèi)部數(shù)據(jù)的安全,也要保護(hù)外部能安全的使用.

22.在當(dāng)前類(lèi)中不允許方法名重復(fù),在別的類(lèi)可以定義一個(gè)跟這個(gè)方法同名的方法.

-(id)initWithName:(NSString *)name;init開(kāi)頭是對(duì)創(chuàng)建對(duì)象和初始化的,不要隨便寫(xiě)類(lèi)名字開(kāi)頭.如果init不是初始化的方法,Xcode會(huì)拒絕編譯.

初始化方法init只能調(diào)用一次.不能重復(fù)調(diào)用

- (void)setName:(NSString*)name setGender:(NSString *)gender

{

_name = name;

_gender = gender;

}

但是不能同時(shí)get2個(gè)屬性例如:

- (NSString*)getName: (NSString *)getGender

{

return self;

}這樣是錯(cuò)誤的

如果不小心修改了Xcode的系統(tǒng)文件.

找到錯(cuò)誤提示路徑,刪除里面所有東西,之后再Xcode中Product中選擇clean然后在重新編譯.

不能在main里面用super因?yàn)閙ain類(lèi)沒(méi)有父類(lèi).

對(duì)super發(fā)消息就是一個(gè)途徑,指向的從父類(lèi)繼承的方法.

構(gòu)造器用來(lái)創(chuàng)建對(duì)象的

重點(diǎn):指派構(gòu)造designated

initializer指派初始化方法.

(某個(gè)方法里面有super init那么這個(gè)方法就是指派構(gòu)造化方法.(也是初始化入口)(也叫默認(rèn)指派初始化方法)

類(lèi)里面必須得有這么唯一一個(gè)指派初始化方法的入口

-(id)initWithName:(NSString *)name

sex:(NSString *)sex

hobby:(NSString *)hobby

{

//self = [super init];

//if (self) {

//_name = name;

//_sex = sex;

//_hobby = hobby;

//}

//return self;

self = [self initWithName:name sex:sexhobby:hobby age:0];

return self;

}

指派初始化方法:

- (id)init

{

//self = [super init];

////如果self是有效指針(非空)

//if (self) {

//_name = @"小唐";

//_sex = @"男";

//_age = 40;

//}

self = [self initWithName:nil sex:nilhobby:nil age:0];

return self;

}

- (id)initWithName:(NSString*)name

{

self = [self initWithName:name sex:nil];

return self;

}

-(id)initWithName:(NSString *)name

sex:(NSString *)sex

{

self = [self initWithName:name sex:sexhobby:nil];

return self;

}

- (id)initWithName:(NSString*)name

sex:(NSString *)sex

hobby:(NSString *)hobby

{

self = [self initWithName:name sex:sexhobby:hobby age:0];

return self;

}

-(id)initWithName:(NSString *)name

sex:(NSString *)sex

hobby:(NSString *)hobby

age:(NSInteger)age

{

self = [super init];

if (self) {

_name = name;

_sex = sex;

_hobby = hobby;

_age = age;

}

return self;

}

dealloc(銷(xiāo)毀)不允許手動(dòng)調(diào)用,系統(tǒng)自動(dòng)調(diào)用

MRC manual

reference count手動(dòng)引用計(jì)數(shù)

ARCauto reference count系統(tǒng)自動(dòng)掃描添加釋放內(nèi)存.

-release()是引用計(jì)數(shù)器減1

-autorelease()自動(dòng)釋放池.

-retain(引用,不會(huì)產(chǎn)生新的對(duì)象)對(duì)這個(gè)對(duì)象發(fā)送這個(gè)消息,引用計(jì)數(shù)器+1

[sturetainCount]輸出引用計(jì)數(shù)器的值

怎么把Xcode改成MRC

左鍵項(xiàng)目,然后搜matic找到objective-c

automatic reference counting改成no

alloc和retain的數(shù)量要等于release

便利構(gòu)造器:

+

(id)personWithName:(NSString *)name//+開(kāi)頭,類(lèi)名開(kāi)頭,返回的是id就是便利構(gòu)造器

{

Person *person = [[Person alloc]initWithName:name];

return [person autorelease];

}

autorelease自動(dòng)釋放池,什么時(shí)候釋放,是由系統(tǒng)控制的

//為什么釋放之后還是能打出來(lái)1:

Person *per = [PersonpersonWithName:@"小唐"];

NSLog(@"%lu",[per retainCount]);

[per release];

NSLog(@"%lu",[perretainCount]);//這個(gè)是野指針,雖然對(duì)象被釋放了,但是內(nèi)存那塊沒(méi)被覆蓋,所以才能打出來(lái)1.

系統(tǒng)為了做優(yōu)化,所以當(dāng)retainCount為1的時(shí)候直接銷(xiāo)毀,不用再去—了.

- (void)release

{

if (1== self.retainCount) {

[self dealloc];

}

else {

self.retainCount--;

}

}

autorelease引用計(jì)數(shù)器延遲減1

成員變量是隨著對(duì)象消亡而消亡對(duì)象的消亡是在dealloc中,每個(gè)成員變量要在dealloc這釋放.

棧里面的東西是隨著函數(shù)的退出而消亡

當(dāng)指針變量聲明周期結(jié)束前要release

settergetter方法,和便利構(gòu)造器補(bǔ)全.

父對(duì)象要保證子對(duì)象在父對(duì)象的生命周期是安全的

比如myclass是父對(duì)象(_student這個(gè)指針指向的那個(gè)student就是子對(duì)象),里面有個(gè)Student*student這個(gè)student是子對(duì)象.(因?yàn)閟tudent是個(gè)指針也是個(gè)對(duì)象)

如何保證父對(duì)象里的子對(duì)象安全,對(duì)子對(duì)象retain.

為什么不能手動(dòng)寫(xiě)dealloc因?yàn)榭赡苓€有別人在用,釋放了的話就crash了

在.h中容易產(chǎn)生交叉導(dǎo)入,容易產(chǎn)生符號(hào)找不著的問(wèn)題.

而真正的頭文件要在.m中導(dǎo)入.

父對(duì)象一定會(huì)強(qiáng)引用自己的子對(duì)象.(強(qiáng)引用,就是對(duì)引用計(jì)數(shù)器+1)

self是內(nèi)部指向這個(gè)類(lèi)的指針,stu是外部的指針

atomic(原子)原子化效率低,安全

一個(gè)類(lèi)可以寫(xiě)在不同的原文件中.(類(lèi)目)

只能添加方法,不能添加成員變量.

@interface NSString(SayHi)給NSString添加一個(gè)SayHi

方法.

當(dāng)兩個(gè)對(duì)象都同時(shí)要使用同一個(gè)字符串的時(shí)候,這個(gè)字符串類(lèi)型要用NSMutableString

指針類(lèi)型的作用:

1.做算術(shù)運(yùn)算跳數(shù)的大小

2.間接尋址指向的類(lèi)型.

NSString *p方便編譯器去檢查錯(cuò)誤(為什么加指針?lè)?hào)

如果想讓類(lèi)目訪問(wèn)成員變量,必須在主類(lèi)里顯示聲明.

isEqualToString比較兩個(gè)字符串對(duì)象是否相等\

怎么把數(shù)字轉(zhuǎn)換成字符串.

OC的數(shù)組會(huì)對(duì)每一個(gè)加進(jìn)去的對(duì)象,引用計(jì)數(shù)器都會(huì)+1,然后釋放的時(shí)候,會(huì)自動(dòng)減1.

//其實(shí)自動(dòng)釋放池里就有一個(gè)數(shù)組

self只能初始化才能賦值,以后就不能變了.

字典存取不是連續(xù)的,是散列的,根據(jù)key所計(jì)算的下表(哈希算法)

字典以空指針結(jié)束.所以不能存空指針

//71 72 74

//26 27 30 313237

(集合)set無(wú)序集合.直接給一個(gè)對(duì)象,自動(dòng)算hash.(當(dāng)你需要知道一個(gè)對(duì)象是否在集合中) (集合和數(shù)組和對(duì)象不同,不能存重復(fù)對(duì)象)

假設(shè)hash重復(fù)了,就順延往下存,第二種就是往上跳10個(gè).

第三種,做小集合,如果在這個(gè)小集合找到重復(fù)的了,就去另一個(gè)小集合找.

netsh winsock reset

super只能幫我們找到這個(gè)類(lèi)從父類(lèi)繼承過(guò)來(lái)的方法.

指針聲明周期結(jié)束之前要對(duì)它relase

局部變量在消亡時(shí)釋放?

成員變量在函數(shù)return時(shí)釋放?

id是泛型指針,(可以保存任意類(lèi)型的指針)

添加到數(shù)組中得元素都會(huì)retain

遍歷構(gòu)造器的好處:

1.工廠方法,工廠生產(chǎn)

2.我們不用關(guān)系它的釋放,因?yàn)榉祷鼗貋?lái)的就是臨時(shí)對(duì)象!

加完斷點(diǎn)之后,在lldb中輸入po province打印這個(gè)對(duì)象.

子對(duì)象強(qiáng)引用父對(duì)象,形成內(nèi)存空洞.都互相對(duì)對(duì)方引用計(jì)數(shù)器+ 1

嵌套引用(2個(gè)對(duì)象無(wú)法釋放)

類(lèi)目

不能增加成員變量.(如果在類(lèi)目中添加屬性,只有方法,沒(méi)有對(duì)應(yīng)的成員變量).(類(lèi)目不能訪問(wèn)屬性創(chuàng)建的成員變量)

分類(lèi)管理類(lèi)

寫(xiě)在不同的原文件中

額外添加相應(yīng)方法

時(shí)間戳(1970年開(kāi)始計(jì)算秒數(shù)):因?yàn)?970年Unix

NSDate存得的是標(biāo)準(zhǔn)時(shí)間,沒(méi)有時(shí)差.

//NSTimeZone *zone = [NSTimeZonetimeZoneWithName:@"America/Swift_Current"];

//[nmatter setTimeZone:zone];

//NSDate *sDate = [nmatterdateFromString:dateString];

//NSLog(@"%@", sDate);

OC的類(lèi)目是為了防止java的過(guò)度繼承

OC中寫(xiě)入延展是對(duì)類(lèi)內(nèi)部開(kāi)放的,不讓外面類(lèi)訪問(wèn)(也就是java中得私有方法.)

有效的封裝不只是保證內(nèi)部安全,還保障外部安全.

接口是對(duì)外服務(wù)的菜單

私有API方法是在延展里的,沒(méi)有在.h中聲明的

協(xié)議里的可選方法,(首先要確定這個(gè)方法實(shí)現(xiàn)了)

一個(gè)類(lèi)可以遵守多個(gè)協(xié)議(協(xié)議是可以繼承的)

代理指針為什么用assign,不允許用retain為了防止父對(duì)象做子對(duì)象的代理時(shí)候,產(chǎn)生的循環(huán)應(yīng)用.

(延展):把外面不需要的功能,放在類(lèi)里面(高內(nèi)聚)

(協(xié)議):每個(gè)類(lèi)單獨(dú)管理,而不是兩個(gè)類(lèi)互相有聯(lián)系(低耦合)

//alloc, copy, init產(chǎn)生的對(duì)象不需要釋放.(這3個(gè)單詞不能做字頭)

淺拷貝:父對(duì)象是同一個(gè),子對(duì)象是不同的

深拷貝:父對(duì)象和子對(duì)象是不同的2對(duì)

父類(lèi)指針指向了子類(lèi)對(duì)象(多態(tài)) (目的:寫(xiě)通用代碼);

setter和getter里面寫(xiě)得先得判斷傳進(jìn)來(lái)是不是以前的.

block就是一段代碼段,(訪問(wèn)得用指針訪問(wèn)) block就是一個(gè)對(duì)象,可以retain和copy

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市似芝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卸亮,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嚼松,死亡現(xiàn)場(chǎng)離奇詭異嫡良,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)献酗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)寝受,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人罕偎,你說(shuō)我怎么就攤上這事很澄。” “怎么了颜及?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵甩苛,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我俏站,道長(zhǎng)讯蒲,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任肄扎,我火速辦了婚禮墨林,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘犯祠。我一直安慰自己旭等,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布衡载。 她就那樣靜靜地躺著搔耕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪痰娱。 梳的紋絲不亂的頭發(fā)上弃榨,一...
    開(kāi)封第一講書(shū)人閱讀 52,441評(píng)論 1 310
  • 那天菩收,我揣著相機(jī)與錄音,去河邊找鬼鲸睛。 笑死坛梁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的腊凶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼拴念,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼钧萍!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起政鼠,我...
    開(kāi)封第一講書(shū)人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤风瘦,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后公般,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體万搔,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年官帘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了瞬雹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡刽虹,死狀恐怖酗捌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情涌哲,我是刑警寧澤胖缤,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站阀圾,受9級(jí)特大地震影響哪廓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜初烘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一涡真、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧账月,春花似錦综膀、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至抓歼,卻和暖如春讥此,著一層夾襖步出監(jiān)牢的瞬間拢锹,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工萄喳, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留卒稳,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓他巨,卻偏偏與公主長(zhǎng)得像充坑,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子染突,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • ———————————————回答好下面的足夠了---------------------------------...
    恒愛(ài)DE問(wèn)候閱讀 1,720評(píng)論 0 4
  • 前言:面試筆試都是必考語(yǔ)法知識(shí)點(diǎn)捻爷。請(qǐng)認(rèn)真復(fù)習(xí)和深入研究OC。 目錄:iOS-面試題-OC基礎(chǔ)篇 (1) - (84...
    麥穗0615閱讀 4,261評(píng)論 0 33
  • 一份企、類(lèi)和對(duì)象 1.定義:類(lèi)是具有相同特征和行為的事物的抽象也榄,對(duì)象是類(lèi)的具體化,類(lèi)是對(duì)象的類(lèi)型司志。 2.面向?qū)ο蟮娜?..
    陳亮宇閱讀 387評(píng)論 1 6
  • 沒(méi)覺(jué)得世界辜負(fù)我或是我與世界太格格不入甜紫。卻也覺(jué)得其實(shí)活的不好,如果曾經(jīng)不是這樣的呢骂远∏舭裕活了太長(zhǎng)我都做了什么。 只記得...
    我姓李1798閱讀 203評(píng)論 0 1
  • 已經(jīng)不記得是什么時(shí)候開(kāi)始,每天都寫(xiě)一段文字了贸营,但最早的初衷我還記得吨述,是羅胖(羅振宇)講的,大概是這么個(gè)意思:要想更...
    終身學(xué)習(xí)的昊天閱讀 383評(píng)論 0 0