IOS基礎(chǔ)知識(shí)

1.#include? ? #import? ? @class 區(qū)別

#include:引入頭文件? ? #import:防止重復(fù)引入頭文件? ? @class:僅告訴編譯器有這個(gè)類(lèi)

2.id和instancetype的區(qū)別

id:可作為返回牵敷、參數(shù)類(lèi)型及用來(lái)定義變量

instancetype:只能作為函數(shù)或方法的返回

3.New作用

申請(qǐng)內(nèi)存空間--->實(shí)例變量初始化--->返回申請(qǐng)空間首地址

4.NSObject和id的區(qū)別

都可以指向任何對(duì)象? ? NSObject對(duì)象晰甚,編譯時(shí)檢查及強(qiáng)制類(lèi)型轉(zhuǎn)換? ? id類(lèi)型,不需要檢查及強(qiáng)制類(lèi)型轉(zhuǎn)換

5.id類(lèi)型、nil俱箱、Nil、NULL日丹、NSNULL

id類(lèi)型:獨(dú)特?cái)?shù)據(jù)類(lèi)型贰您,可以轉(zhuǎn)換為任何數(shù)據(jù)類(lèi)型,id類(lèi)型的變量可以存放任何數(shù)據(jù)類(lèi)型的對(duì)象揍拆,在內(nèi)部處理上渠概,這種類(lèi)型定義為指向?qū)ο蟮闹羔槪瑢?shí)際上是一個(gè)指向這種對(duì)象的實(shí)例變量的指針嫂拴;

nil:實(shí)例對(duì)象值播揪,把一個(gè)對(duì)象設(shè)置為空就是nil

Nil:類(lèi)對(duì)象的值,把一個(gè)class對(duì)象設(shè)置為空就是Nil

NULL:指向基本數(shù)據(jù)類(lèi)型的空指針(C語(yǔ)言的變量的指針為空)

NSNull:對(duì)象筒狠,不能用在使用nil的場(chǎng)合

6.atomic和nonatomic區(qū)別猪狈,及作用

atomic:系統(tǒng)自動(dòng)生成的getter/setter方法會(huì)進(jìn)行加鎖操作? ?線程不安全

nonatomic:系統(tǒng)自動(dòng)生成的getter/setter方法不會(huì)進(jìn)行加鎖操作

7.weak、assign?

weak:所指對(duì)象摧毀時(shí)辩恼,系統(tǒng)將對(duì)象指向nil雇庙,如果這個(gè)時(shí)候給對(duì)象發(fā)送消息谓形,不會(huì)崩潰

assign:所指對(duì)象摧毀時(shí),如果這個(gè)時(shí)候給對(duì)象發(fā)送消息状共,會(huì)崩潰

代理使用weak還是assign:

建議使用weak套耕,銷(xiāo)毀由外部控制

可以使用assign,對(duì)象釋放前峡继,需要將delegate指針設(shè)置為nil冯袍,不然會(huì)產(chǎn)生野指針

8:ARC下,不顯示指定任何屬性關(guān)鍵字碾牌,默認(rèn)的關(guān)鍵字有哪些

基本數(shù)據(jù)類(lèi)型:atomic康愤、readwrite、assign

普通OC對(duì)象:atomic舶吗、readwrite征冷、strong

9.怎么用copy關(guān)鍵字

NSString、NSArray誓琼、NSDictonary? 使用copy關(guān)鍵字检激。因?yàn)樗麄冇袑?duì)應(yīng)的可變類(lèi)型:NSMutableString、NSMutableArray腹侣、NSMutableDictonary叔收,為確保對(duì)象中的屬性值不會(huì)無(wú)意間變動(dòng),應(yīng)該在設(shè)置新的屬性值時(shí)拷貝一份傲隶,保護(hù)期封裝性

block 也經(jīng)常使用copy饺律,方法內(nèi)部的block默認(rèn)是在棧區(qū),使用copy可以把它放到堆區(qū)

block 使用strong效果一樣的跺株,建議寫(xiě)上copy复濒,可以顯示告知調(diào)用者編譯器會(huì)自動(dòng)對(duì)block進(jìn)行了copy操作

10.如何讓自定義類(lèi)可以用copy修飾符?如何重寫(xiě)帶copy關(guān)鍵字的setter乒省?

需要實(shí)現(xiàn)NSCopying協(xié)議巧颈。如果分為可變版本和不可變版本,需要同時(shí)實(shí)現(xiàn)NSCopying與NSMutableCopying協(xié)議

11袖扛、什么是僵尸對(duì)象

已經(jīng)被銷(xiāo)毀的對(duì)象(不能再使用的對(duì)象)洛二,內(nèi)存已經(jīng)被回收的對(duì)象

12、如下代碼有什么問(wèn)題嗎攻锰?

@property (copy, nonatomic) NSMutableArray *array

使用copy修飾,會(huì)生成不可變數(shù)組妓雾,在添加刪除數(shù)組元素時(shí)候回崩潰

13娶吞、NSInteger與int的區(qū)別

32位操作系統(tǒng) NSInteger === int,即32位? ? 64位操作系統(tǒng) NSInteger === long械姻,即64位

14.@synthesize和@dynamic分別有什么作用

@property有兩個(gè)對(duì)應(yīng)的詞妒蛇,一個(gè)是@synthesize机断,一個(gè)是@dynamic

如果@synthesize和@dynamic都沒(méi)寫(xiě),name默認(rèn)的就是@synthesize var = _var

@synthesize的語(yǔ)義是如果你沒(méi)有手動(dòng)實(shí)現(xiàn)setter方法和getter方法绣夺,那么編譯器會(huì)自動(dòng)為你加上這兩個(gè)方法

@dynamic告訴編譯器:屬性的setter與getter方法由用戶自己實(shí)現(xiàn)吏奸,不自動(dòng)生成(當(dāng)然對(duì)于readonly的屬性只需提供getter即可)

15、NSMutableDictionary中使用setValueForKey和setObjectForKey有什么區(qū)別

如果給NSMutableDictionary發(fā)送setValue任然調(diào)用了setObject方法陶耍,如果參數(shù)value為nil奋蔚,則會(huì)調(diào)用removeObject刪除這個(gè)鍵值對(duì)

setObjectForKey是NSMutableDictonary可有的,value不能為nil烈钞,否則會(huì)崩潰

setValueForKey是KVC的泊碑,key必須是字符串類(lèi)型,setObject的key可以是任意類(lèi)型

16毯欣、const馒过、宏、static酗钞、extern

const腹忽,作用:現(xiàn)在類(lèi)型

使用const修飾基本變量,兩種寫(xiě)法效果一致砚作,b都是只讀變量? ? const int b = 5; int const b = 5;

使用const修飾指針變量的變量

第一種:const int *p = &a 和 int const *q = &a窘奏;效果一致,*p的值不能改偎巢,p的指向可以改

第二種:int * const p = &a;表示p的指向不能改,*p的值可以改

第三種:const int * const p = &a;*p值和p的指向都不能改

const 在*左邊蔼夜,指向可變,值不可變? ? ????const 在*的右邊压昼,指向不可變求冷,值可變? ? ? ? const 在*的兩邊,都不可變

宏窍霞,一種批量處理的稱(chēng)謂

const和宏的區(qū)別匠题?

編譯的檢查? ? 宏沒(méi)有編譯檢查,const有編譯檢查

宏的好處? ? 定義函數(shù)但金、方法韭山,const不可以

宏的壞處? ? 大量使用宏,會(huì)導(dǎo)致預(yù)編譯事件過(guò)長(zhǎng)

static

修飾局部變量:被static修飾局部變量冷溃,延長(zhǎng)生命周期钱磅,跟整個(gè)應(yīng)用程序有關(guān),程序結(jié)束才會(huì)銷(xiāo)毀似枕;被static修飾局部變量盖淡,只會(huì)分配一次內(nèi)存

修飾全局變量:被static修飾全局變量,作用域會(huì)修改凿歼,只能在當(dāng)前文件下使用

extern褪迟,聲明外部全局變量(只能用于聲明冗恨,不能用于定義)

常用用法(.h結(jié)合extern聯(lián)合使用),如果在.h 文件中聲明了extern全局變量味赃,那么在同一個(gè)類(lèi)中的.m文件對(duì)全局變量的賦值必須是:數(shù)據(jù)類(lèi)型+變量名(與聲明一致) = xxxx結(jié)構(gòu)掀抹。并且在調(diào)用的時(shí)候,必須導(dǎo)入.h文件

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末心俗,一起剝皮案震驚了整個(gè)濱河市傲武,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌另凌,老刑警劉巖谱轨,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異吠谢,居然都是意外死亡土童,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)工坊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)献汗,“玉大人,你說(shuō)我怎么就攤上這事王污“粘裕” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵昭齐,是天一觀的道長(zhǎng)尿招。 經(jīng)常有香客問(wèn)我,道長(zhǎng)阱驾,這世上最難降的妖魔是什么就谜? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮里覆,結(jié)果婚禮上丧荐,老公的妹妹穿的比我還像新娘。我一直安慰自己喧枷,他們只是感情好虹统,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著隧甚,像睡著了一般车荔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上戚扳,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天夸赫,我揣著相機(jī)與錄音,去河邊找鬼咖城。 笑死茬腿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的宜雀。 我是一名探鬼主播切平,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼辐董!你這毒婦竟也來(lái)了悴品?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤简烘,失蹤者是張志新(化名)和其女友劉穎苔严,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體孤澎,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡届氢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了覆旭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片退子。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖型将,靈堂內(nèi)的尸體忽然破棺而出寂祥,到底是詐尸還是另有隱情,我是刑警寧澤七兜,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布丸凭,位于F島的核電站,受9級(jí)特大地震影響腕铸,放射性物質(zhì)發(fā)生泄漏惜犀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一恬惯、第九天 我趴在偏房一處隱蔽的房頂上張望向拆。 院中可真熱鬧,春花似錦酪耳、人聲如沸浓恳。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)颈将。三九已至,卻和暖如春言疗,著一層夾襖步出監(jiān)牢的瞬間晴圾,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工噪奄, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留死姚,地道東北人人乓。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像都毒,于是被迫代替她去往敵國(guó)和親色罚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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

  • iOS 基礎(chǔ)知識(shí)概述 基本修飾屬性 assion-基本用于修飾基本數(shù)據(jù)類(lèi)型 如 int 等 是弱引用 copyco...
    浮萍向北閱讀 363評(píng)論 0 5
  • 1.為什么說(shuō)Objective-C是一門(mén)動(dòng)態(tài)的語(yǔ)言账劲? 1.object-c類(lèi)的類(lèi)型和數(shù)據(jù)變量的類(lèi)型都是在運(yùn)行是確定...
    蝸牛上上升閱讀 810評(píng)論 0 3
  • OC的理解與特性 OC作為一門(mén)面向?qū)ο蟮恼Z(yǔ)言戳护,自然具有面向?qū)ο蟮恼Z(yǔ)言特性:封裝、繼承瀑焦、多態(tài)腌且。它既具有靜態(tài)語(yǔ)言的特性...
    蝸牛上上升閱讀 848評(píng)論 0 0
  • 1.對(duì)屬性修飾符的理解 MRC下 assign 主要用于修飾基本數(shù)據(jù)類(lèi)型,setter方法也只是簡(jiǎn)單的賦值榛瓮,例如N...
    i_can_fan閱讀 1,399評(píng)論 0 6
  • 1铺董、weak關(guān)鍵字的作用 weak的作用是弱引用,它修飾的對(duì)象在釋放時(shí)會(huì)置為nil榆芦,避免錯(cuò)誤的內(nèi)存訪問(wèn)柄粹。一般用于d...
    Lorne_coder閱讀 745評(píng)論 0 7