一.
簡述對
view
,viewcontroller, calayer
和 window
的理解uiview:屬於uikit.framework 框架,負責渲染矩形區域的內容,為矩形區域新增動畫,響應區域的觸控事件,布局和管理乙個或多個子檢視
3、與uiviewcontroller 協同工作,方便完成裝置方向旋轉的支援
calayer:屬於 quartzcore.framework,是用來繪製內容的,對內容進行動畫處理依
賴與 uiview 來進行顯示,不能處 理使用者事件。
uiview 和 calayer 是相互依賴
的,uiview 依賴 calayer 提供內容,calayer 依賴uiview 一共容器顯示繪製內容。
延伸: uiviewcontroller:管理檢視的幾成熟,每個檢視控制器都有乙個自帶的檢視,
並且負責這個檢視相關的一切事務。
方便 管理檢視中的子檢視,負責 model 與
view 的通訊;檢測裝置旋轉以及記憶體警告;是所有檢視控制類的積累,定義了控制
器 的基本功能。
二. 說明
uiviewcontroller
類成員函式:
initwithnibname:boundle;
/dealloc/loadview/viewdidload/viewdidunload 呼叫順序,每個方法應
該做的工作是什麼?(5 分)
1.initwithnibname:boundle:
初始化 uiviewcontroller,執行關鍵資料初始化操作
2.loadview: 當訪問 uiviewcontroller 的 view 屬性時,view 如果此
時是 nil,那麼 vc 會自動呼叫 loadview 方法來初始化乙個 uiview
並賦值給 view 屬性
3.viewdidload: 當 vc 的 view 物件載入記憶體後呼叫,用於對 view 進
行額外的初始化操作
4.viewdidunload: 在 vc 的 view 物件從記憶體中釋放之後呼叫,可以在 view 被釋放後做
一些 view 相關的引用清理操作,此時 view 為 nil。在 ios6.0 開始就
廢棄了,該方法不再會呼叫
5.dealloc:uiviewcontroller 物件銷毀的時候呼叫
三. 說明
uiview
類屬性
frame/center/bounds
的聯絡與區別,改變
bounds
的值會不會對
frame
和 center
造成改變;
frame 指的是:該 view 在父 view 座標系統中的位置和大小(參照點是 父類的座標系統)
bounds 指的是:該 view 在本身座標系統中的位置和大小(參照點是本 身的
center:相對于父檢視座標系的中心點座標
改變 bounds 的值不會對 frame 和 center 造成改變
四.說說你了解以及日常使⽤的版本控制系統,以及它們的優缺點
svn 優點:除包括了 cvs 的⼤大多數特點外,還有⼀一些如:⽂檔案⽬目錄可以⽅方便的
改名、基於資料庫的版本庫、操作速度提公升、許可權管理更完善等功能⾮非常好
⽤用。svn 缺點:**庫不是分布式,⽽而是集中在⼀乙個地⽅方,所以導致跨國訪問的時
候速度很慢,遠端發開⾮非常不利。其次由於**庫只有⼀乙份,特別是元資料都
存在伺服器上,所以當伺服器崩潰的時候損失嚴重。
git 優點:是免費、開源、它採⽤用了分布式版本庫的⽅方式,不必伺服器端軟體
⽀支援,使源**的發布和交流極其⽅方便。每⼀乙個 git 轉殖都是⼀乙個完整的⽂檔案
庫,含有全部歷史記錄和修訂追蹤能⼒力。其最⼤大特⾊色就是「分⽀支」及「合併」操作
快速、簡便。⽀支援離線⼯工作,git 是整個項⽬目範圍的原⼦子提交,⽽而且 git 中的
每個⼯工作樹都包含⼀乙個具有完整項⽬目歷史的倉庫。
git 缺點:對 windows 以及中⽂文的⽀支援不是很好。
五. 你了解的設計模式
mvc設計模式 單例模式 **模式 通知模式 工廠模式 介面卡模式
簡單介紹集中設計模式:
1)模型檢視控制器(mvc)。控制器負責行為,模型提供資料來源,檢視顯示ui。 模型和檢視之間盡量不要直接打交道,他們之間的互動應該通過控制器來進 行,控制器充當著橋梁的作用。這樣設計的目的是使不同功能的類之間盡量 解耦,以利於程式的擴充套件。
2)**模式
委託**(degegate),顧名思義,把某個物件要做的事情委託給別的物件去
做。那麼別的物件就是這個物件的**,代替它來打理要做的事。反映到程
序中,首先要明確乙個物件的委託方是哪個物件,委託所做的內容是什麼。
這裡所做的內容是靠協議中的方法來實現,方法分兩種:必需實現(@required)
的方法和根據情況選擇實現(@optional)的方法。
舉個例子:你是房屋租賃中介,某個房東和你簽訂協議,請你替他把房子出
租出去。這時,你就是房東的**,你必須實現的方法是把屋子出租出去,
選擇實現的方法是裝修、添置家具、打隔斷等(依據協議而定)。
3)通知模式
通知模式是觀察者模式的一種。a物件在通知中心註冊了觀察者之後,b物件發出通知廣播,a物件收到通知後就知道去做具體的事。觀察者可以是乙個或 多個,也可以沒有。舉個例子:微博切換帳號後會發出乙個通知,讓多個界 面重新重新整理資料。
4)kvo模式
key-value-observer模式也是觀察者模式的一種。kvo的機制為:當指定的被
觀察物件的屬性被修改的時候,kvo都會自動的去通知相應的觀察者。舉個例
子,在控制器裡通過addobserver:forkeypath:options:context:註冊乙個數
據源觀察者,當資料來源裡的資料發生變化時,通過willchangevalueforkey:
和didchangevalueforkey:這一對方法發出廣播,控制器收到廣播後就可以利
用新的資料來重新整理介面。
5)單例模式
通過單例模式可以保證系統中乙個類只有乙個例項而且該例項易於外界訪問,從
而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能
存在乙個,單例模式是最好的解決方案。
面試問題1
問題一 請你自我介紹一下 思路 1 這是面試的必考題目。2 介紹內容要與個人簡歷相一致。3 表述方式上盡量口語化。4 要切中要害,不談無關 無用的內容。5 條理要清晰,層次要分明。6 事先最好以文字的形式寫好背熟。問題二 談談你的家庭情況 思路 1 況對於了解應聘者的性格 觀念 心態等有一定的作用,...
面試問題1
今天去面試,面試官問了一些常識問題,才發現自己缺乏一些基本問題的概念。http https 區別 http資料傳輸明文 不安全,可以通過抓包獲得傳輸資料內容 https在tcp協議基礎之上增加了ssl tsl協議,對傳輸資料進行加密處理,保證了資料的安全性 cookie cookies 和 sess...
面試問題(1)
1 molloc與new的區別 2 molloc記憶體分配機制是怎麼樣的,在 分配記憶體,最大可以申請多大的記憶體 鍊錶 heap區 linux下最大3g,windows下2g 3 講一下new運算子的原理,new運算子過載用過嗎,怎麼寫過載函式,過載的定義 4 linux系統應用程式的記憶體空間是...