MUSE-Questions

問題:

1.如何實(shí)現(xiàn)多代理回調(diào)缘揪,并且多個(gè)代理的方法都要執(zhí)行?

創(chuàng)建中間橋接類(代理的容器類)屯耸,橋接類定義單獨(dú)的代理對象屬性 ?vc提供adddelegate的方法以及存儲橋接類的數(shù)組,回調(diào)的時(shí)候遍歷存儲橋接類的數(shù)組,依次執(zhí)行協(xié)議方法豺型。

2.事件分發(fā)原理固蚤,手勢傳遞過程

只有繼承與uiresponder的對象能夠響應(yīng)事件touch對應(yīng)的api她混,事件產(chǎn)生后被加到uiapplication管理的事件隊(duì)列中联贩,由它來由里往外遞漫仆,window-view-subview,遞歸傳遞(找到view之后調(diào)用hittest:查找view的子view)泪幌,找到最合適的view(響應(yīng)鏈第一響應(yīng)者)后調(diào)用touches方法對事件進(jìn)行響應(yīng)盲厌,如果沒有重寫將事件沿著響應(yīng)者鏈往上拋(由外往里拋一直到uiapplication,與事件傳遞相反)祸泪,手勢識別器會延遲事件向所綁定的視圖傳遞吗浩,優(yōu)先去識別手勢處理touch事件

3.sd圖片存儲過期時(shí)間在什么時(shí)機(jī)設(shè)置?(有效時(shí)間設(shè)置)

下載結(jié)束實(shí)例化webimage的時(shí)浴滴,sdimagecache中有變量表示圖片緩存的最大值和過期時(shí)間

4.kvo能監(jiān)聽數(shù)組么拓萌?

可以監(jiān)聽可變數(shù)組的長度變化,但是不能監(jiān)聽到數(shù)組里面某一個(gè)對象的變化升略,不能使用array addobject的方式添加,要使用array [mutableArrayValueForKeyPath:@“dataArray”]

5.gcd的源碼理解

注意常用的幾個(gè)api屡限,匯總group,順序執(zhí)行barrir

6.masonry如何使用鏈?zhǔn)秸Z法對autolayout進(jìn)行封裝的品嚣?

make.centerX.mas……()點(diǎn)語法實(shí)現(xiàn),通過屬性的方式實(shí)現(xiàn)多級的調(diào)用,調(diào)用的方法是對象的block屬性钧大。將block作為屬性進(jìn)行訪問翰撑、block的返回參數(shù)是自定義對象

7.如何自己實(shí)現(xiàn)cell高度緩存,autolayout使用系統(tǒng)計(jì)算高度有什么問題啊央?

tableview設(shè)置了UITableViewAutomaticDimension之后autolayout會自動計(jì)算cell的高度但是不會緩存這個(gè)高度值眶诈,在cellforrowatindexpath中計(jì)算高度做緩存。cellforrow與heightforrow的調(diào)用順序:設(shè)置了預(yù)估高度前者在前瓜饥、否則后者在前會輪訓(xùn)一遍計(jì)算contentsize

8.tableview優(yōu)化逝撬,設(shè)置透明度是怎么影響gpu性能的?

tableview的cell復(fù)用乓土,緩存cell的高度不用每次都要計(jì)算宪潮,計(jì)算的時(shí)候放在異步線程中,圖片異步加載趣苏,緩存資源狡相,懶加載,布局的時(shí)候不要太多層級食磕,不要動態(tài)的添加subview提前添加完畢然后控制顯影 因?yàn)槊看翁砑又髸匦虏季謅utolay消耗性能尽棕,減少繪圖操作;預(yù)渲染圖像彬伦,不要使用透明背景會導(dǎo)致混合操作(gpu負(fù)責(zé))滔悉,這個(gè)過程很耗時(shí)

9.iOS9之前tableview的代理為啥用assign伊诵?

之前的delegate需要在dealloc中對代理設(shè)置為nil,

assign修飾delegate不對引用計(jì)數(shù)操作氧敢,使用之后沒有設(shè)置為nil可能會產(chǎn)生野指針日戈,而weak會自動設(shè)置為nil。

10.runtime使用場景有哪些孙乖?

方法交換浙炼,獲取屬性列表方法列表,動態(tài)創(chuàng)建類創(chuàng)建屬性唯袄。弯屈。。

11.jsonmodel實(shí)現(xiàn)細(xì)節(jié)

12.如何避免外界通過kvc訪問成員變量恋拷?

將accessInstanceVariablesDirectlygetter方法返回NO资厉,

kvc本質(zhì)上是操作方法列表以及在內(nèi)存中查找實(shí)例變量,可以利用此特性訪問類的私有變量蔬顾。

14.coretext宴偿,coreimage如何使用

15.gcd如何去取消一個(gè)正在執(zhí)行的請求任務(wù)

ios8之后可以調(diào)用dispatch_block_cancel來取消還沒有執(zhí)行的任務(wù)

模擬NSOperationQueue定義外部變量,用來標(biāo)記block是否需要取消诀豁,即外部變量為NO時(shí)窄刘,可以在block里面返回(感覺這個(gè)操作沒什么意義)

16.NSOperationQueue 添加的任務(wù)默認(rèn)是怎么執(zhí)行,同步還是異步

可設(shè)置優(yōu)先級(operation設(shè)置完依賴之后再比較優(yōu)先級)舷胜,并發(fā)數(shù)量

NSOperation默認(rèn)是同步執(zhí)行娩践,將operation添加到隊(duì)列中是異步執(zhí)行的,給operation添加依賴 addDependency烹骨,即在其他operation執(zhí)行完之后在執(zhí)行

17.[obj someMethod]翻伺,oc方法調(diào)用的原理是什么?

oc中方法調(diào)用最終轉(zhuǎn)換成runtime的c語言函數(shù)objc_msgSend(id receiver沮焕,SEL op吨岭,),信息發(fā)送后會在receiver類對象的方法列表中找這個(gè)方法遇汞。

首先去該類的cache中查詢未妹,找到返回;沒找到就去methodlist中查找空入,找到就將方法的IMP返回并將IMP存入cache中络它;如果還沒有找到,通過super_calss找到父類歪赢,在父類的methodlist中查找化戳;如果父類中沒有找到進(jìn)行動態(tài)決議和消息轉(zhuǎn)發(fā);如果動態(tài)決議和消息轉(zhuǎn)發(fā)返回NO和nil,就拋出異常

18.NSOperationQueue 中的串行指的是最大并發(fā)數(shù)為1点楼,默認(rèn)是-1即并行

19.NSOperationQueue中執(zhí)行完A扫尖,B 再去執(zhí)行C任務(wù)如何實(shí)現(xiàn)

可以對任務(wù)設(shè)置依賴

20.靜默推送

iOS7之后在后臺任務(wù)增加了特性:后臺獲取、推送喚醒掠廓、后臺傳輸换怖。

需求:在應(yīng)用退到后臺時(shí)某一個(gè)時(shí)間點(diǎn)喚醒設(shè)備更新UI,在用戶下次點(diǎn)擊應(yīng)用圖標(biāo)進(jìn)入應(yīng)用的時(shí)候就能看到已經(jīng)更新好的UI了蟀瞧。

后臺的格式:增加content-available字段并設(shè)成1沉颂;alert字段必須為空否則收到的就不是靜默推送;sound字段不影響靜默推送悦污,看需求是否需要铸屉。

總結(jié):相當(dāng)于應(yīng)用在后臺的時(shí)候app中收到推送回調(diào),在沒有打開app的前提下去做一些操作切端,例如刷新UI等彻坛,Xcode中需要設(shè)置remote notifications

21.用c創(chuàng)建的對象arc下需要自己去釋放嗎?

用free()去釋放

22.udp服務(wù)器如何發(fā)送消息踏枣,是否是面向連接

23.項(xiàng)目中遇到哪些難題昌屉,上架是否遇到過問題?

項(xiàng)目難題:

上架問題:啟動圖片含有蘋果的logo直接被打回茵瀑;

上架勾選了內(nèi)購但是沒有開發(fā)內(nèi)購功能怠益;符合內(nèi)購的功能模塊確使用了第三方支付;

24.混合開發(fā)時(shí)瘾婿,客戶端的登錄狀態(tài)如何同步到h5頁面?

可以通過webjsbridge約定一個(gè)方法烤咧,在app登錄成功的時(shí)候通知h5去登錄

app中的登錄信息其實(shí)就是一個(gè)token值偏陪,可以將token或者用戶id傳遞給h5.

傳遞之前清理一下h5的地址對應(yīng)的cookie(遍歷cookie單例找到改url對應(yīng)cookie并刪除);

加載html的時(shí)候講token通過cookie傳遞過去(在包裝request的時(shí)候設(shè)置進(jìn)去)煮嫌;

25.weak的原理是什么笛谦,知道多少說多少?

weak是Runtime維護(hù)了一個(gè)hash(哈希)表昌阿,用于存儲指向某個(gè)對象的所有weak指針饥脑。weak表其實(shí)是一個(gè)hash(哈希)表,Key是所指對象的地址懦冰,Value是weak指針的地址(這個(gè)地址的值是所指對象指針的地址)數(shù)組灶轰。

26.wk與webview區(qū)別?

wkwebview有更多的h5特性刷钢,更高的滾動刷新率內(nèi)置手勢

27.autolayout布局的view笋颤,如何在自己.m文件中獲取寬高以便子視圖根據(jù)條件布局?

可以在layoutsubviews里面獲取

28.xr的適配 設(shè)備唯一標(biāo)示怎么獲取 不用uidevice 蘋果貌似禁止了内地?

注意安全區(qū)safeArea伴澄,設(shè)備尺寸宏定義赋除。[NSUUID UUID].UUIDString動態(tài)id,每次生成的id都不一樣非凌,udid/Mac地址/openudid 都被蘋果禁止了举农,蘋果不允許訪問用戶唯一的隱私數(shù)據(jù)。

29.表情是怎么實(shí)現(xiàn)的敞嗡,本地存儲颁糟?還有表情是如何展示的(圖文混排怎么做)?

本地需要兩個(gè)字典秸妥,表情圖片字典滚停、表情含義字典。圖文混排使用yykit

30.cache目錄下文件如何緩存的 跟tmp目錄下的文件有什么區(qū)別粥惧?

用戶生成的文件键畴、其他數(shù)據(jù)及其他程序不能重新創(chuàng)建的文件,應(yīng)該保存在/Documents目錄下面突雪,并將通過iCloud自動備份起惕,可以重新下載或者重新生成的數(shù)據(jù)保存在/Library /caches目錄下面,不備份咏删。

tmp下的文件系統(tǒng)會根據(jù)情況將其清空 可能是內(nèi)存不足的時(shí)候也可能是其他時(shí)候

31.ios怎么去管理一個(gè)線程的生命周期惹想?

可以監(jiān)控線程查看runloop處于什么mode

32.如何解決內(nèi)存暴漲問題?

創(chuàng)建對象的時(shí)候控制一次性創(chuàng)建的數(shù)量督函,創(chuàng)建完成回收該內(nèi)存空間

33.fmdb如何解決多線程問題嘀粱?

使用FMDatabaseQueue 思路是:創(chuàng)建一個(gè)隊(duì)列,然后將放入隊(duì)列的block順序執(zhí)行辰狡,這樣避免了多線程同時(shí)訪問數(shù)據(jù)庫;每個(gè)線程使用同一個(gè)Queue實(shí)例

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锋叨,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子宛篇,更是在濱河造成了極大的恐慌娃磺,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叫倍,死亡現(xiàn)場離奇詭異偷卧,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)吆倦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門听诸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人逼庞,你說我怎么就攤上這事蛇更。” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵派任,是天一觀的道長砸逊。 經(jīng)常有香客問我,道長掌逛,這世上最難降的妖魔是什么师逸? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮豆混,結(jié)果婚禮上篓像,老公的妹妹穿的比我還像新娘。我一直安慰自己皿伺,他們只是感情好员辩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鸵鸥,像睡著了一般奠滑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妒穴,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天宋税,我揣著相機(jī)與錄音,去河邊找鬼讼油。 笑死杰赛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的矮台。 我是一名探鬼主播乏屯,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瘦赫!你這毒婦竟也來了瓶珊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤耸彪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后忘苛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蝉娜,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年扎唾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了召川。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,926評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡胸遇,死狀恐怖荧呐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤倍阐,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布概疆,位于F島的核電站,受9級特大地震影響峰搪,放射性物質(zhì)發(fā)生泄漏岔冀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一概耻、第九天 我趴在偏房一處隱蔽的房頂上張望使套。 院中可真熱鬧,春花似錦鞠柄、人聲如沸侦高。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奉呛。三九已至,卻和暖如春期奔,著一層夾襖步出監(jiān)牢的瞬間侧馅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工呐萌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留馁痴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓肺孤,卻偏偏與公主長得像罗晕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子赠堵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評論 2 354

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

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,101評論 1 32
  • 一小渊、深復(fù)制和淺復(fù)制的區(qū)別? 1茫叭、淺復(fù)制:只是復(fù)制了指向?qū)ο蟮闹羔槼晏耄磧蓚€(gè)指針指向同一塊內(nèi)存單元!而不復(fù)制指向?qū)ο蟮?..
    iOS_Alex閱讀 1,376評論 1 27
  • 基礎(chǔ)部分 設(shè)計(jì)模式 1). MVC模式:Model View Control揍愁,把模型 視圖 控制器 層進(jìn)行解耦合編...
    微冷l閱讀 484評論 1 0
  • 《亂劍齊傷》 江中咩水船休誤呐萨, 羋山晨咪齊高嵩。 專書銘人讓他換莽囤, 離別時(shí)來無心間谬擦。 春芳花自花城又, 是批五堵詩...
    春城怡景閱讀 422評論 4 6
  • McDonald’s uses the iconic arch to convey where the close...
    賣加拿大海參閱讀 196評論 2 3