iOS之面試筆記(一)

以下的這些問題都是些本人在之前找工作的時候遇到的面試問題,我就做了些整理,大概如下,供大家參考下。

一 (這是個直播類的公司的面試問題)

1、KVC和KVO區別
2、內存管理機制是什么樣的?
3、輪播圖片的實現方法
4、tableview的代理方法有哪些
5、運行時的機制
6、tableview的復用的原理?
7、圖文混排的做法
8、響應鏈是什么?
9、針對項目,假如在scrollview上加scrollview或tableview,只讓下面的滑動
10、多線程闡述
11、git命令 舉個例。
12、bilibili首頁的分析

二(這是個做金融類的公司)

1、自動布局,類似微信的朋友圈
2、輪播圖片的實現方法
3、推送原理
4、上架流程
5、SDWebImage的內部實現
6、緩存技術 大概闡述下。
7、瀑布流,怎么檢測每列最小的y值
8、自己實現一個tableview和瀑布流
9、自己電腦生成的那個鑰匙串有什么用處(生成證書的時候用的)
10、推送的時候,服務器發送的令牌,包含著什么內容
11、輪播圖片的時候,假如有定時器,怎么讓這個輪播順暢執行
12、nstimer和一個什么東西的區別,忘了名字了!(忽略吧)
13、MVC模式簡要說明
14、XML解析的原理 ,有哪些三方的庫。
15、多線程的使用場景
16、開發中遇到的最大問題
17、是否對數據庫了解,fmdb 、sqlite3
18、git和SVN的命令 舉例

三 (這是個外包公司的問題,問題里面全是坑)

1.在父視圖上[UIButton new]時,給左上一個15的約束,會有什么情況發生。
答:由于新建的button沒有放在父視圖,所以會引發崩潰。
2.用masonry寫個離父視圖邊距15的純代碼
答:make.left.mas_equalTo(self.view.mas_left).offset(15);
3.在父視圖上添加一個scrollView 后加一個button或label,怎么添加約束
4.怎么處理網絡緩存
5.怎么處理圖片緩存,怎么刪除緩存
6.AFN2.0和3.0的manager有什么區別(單例和非單例的區別),其他的還有什么區別。
7.SDWebImage的緩存策略,對于圖片怎么處理的,以及api接口是哪一個。
sd_setImageWithUrl:(NSUrl *)url placeholder:(UIImage *)image;
8.熱修復的原理
9.代碼沖突怎么查找,怎么解決,
答:在代碼中找到>>>>>>>>表示沖突的開始位置。
找到<<<<<<<表示代碼沖突的結束位置。
此外還有=========
10.數據庫sql語句的添加(新增)字段怎么實現。
答:
添加字段:
alter table 表名 add 字段名 類型
刪除字段:
alter table 表名 drop column 字段名
11.最新的xcode版本(他覺得我沒有開發過iOS 我去。。。)
12.怎么實現最大并發數
NSOPerationQueue的類

// 最好設置最大并發數為2~3
self.queue.maxConcurrentOperationCount = 3;

13.除此之外問了很多api接口的代碼。
14.處理block需要注意的有那些?
答:(1)在使用block前需要對block指針做判空處理。
(2)在MRC的編譯環境下,block如果作為成員參數要copy一下將棧上的block拷貝到堆上
(3)在block使用之后要對,block指針做賦空值處理,如果是MRC的編譯環境下,要先release掉block對象。
(4)使用方將self或成員變量加入block之前要先將self變為__weak
(5)在多線程環境下(block中的weakSelf有可能被析構的情況下),需要先將self轉為strong指針,避免在運行到某個關鍵步驟時self對象被析構。
第四、第五條合起來有個名詞叫weak–strong dance,
參考:http://www.cnblogs.com/biosli/p/block_usage.html

四(也是半外包類的公司)

1.緩存的處理:可以用字典進行處理。
2.對于緩存所占內存過高的時候的處理辦法:一般就是設置一個上限值,例如100M,加入緩存達到上限值的話,就可以刪除一些沒有用的緩存,來降低緩存所占的內存。
3.運行時原理以及消息轉發
4.KVO的底層實現原理:就是對對象進行一個拷貝,生成一個全新的對象,對新的對象的屬性的進行觀測,觀測到新舊兩個對象的屬性值的變化,其中在類的對象中的isa指針會指向類。
5.深拷貝和淺拷貝
6.用socket來封裝CFNetworking的實現原理
7.HTTP和TCP/IP的為什么叫短連接和長連接:對于這兩個協議來說都是流服務,HTTP是在建立了流服務的連接后,會維持一段時間自動斷開連接,且下次連接還需要進行一次完成流程的連接,這是不會有記憶功能的,所以是可靠的。但是TCP/IP的連接是就是在連接完成后,不會自動斷開連接,仍然保持連接,所以稱為長連接。
8.對于id類型為啥是所以類型的父類:由于是id類型來源NSObject的對象,而其他的類都是繼承自NSObject的,所以其他的對象是繼承id。
9.對于id來創建對象,為什么不加 * :由于在NSObject創建對象的時候就會有個了,而id只是對其的進一步的封裝,所以不用在id再加上了。
10.為什么在tableView上添加一個輪播圖片,在下滑上拉的時候,輪播圖片停止滾動:原因就是輪播圖片加在當前的runloop會自動的停掉。所以滑動界面的時候會使得輪播圖片停止滾動,這時需要把輪播圖片添加到其他的runLoop中去,這樣就算有滑動頁面也不會使得輪播圖片停止滾動。
11.GCD中的mainQueue和globalQueue有什么區別:mainqueue的話是主隊列,這是同步執行的,而globalQueue是可以異步的執行任務的。
12.解決手勢沖突的代碼:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    // 輸出點擊的view的類名
    // 若為UITableViewCellContentView(即點擊了tableViewCell),則不截獲Touch事件
    if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
        return NO;
    }
    return YES;
}
 [NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]

判斷這個手勢是否添加到相應的控件上。
13.FMDB在多線程中的問題:FMDB是支持多線程的,需要用到的是FMDatabaseQueue,[FMDatabaseQueue databaseQueueWithPath:path],然后可以處理多線程的問題,但是在對于多線程安全問題,在同時操作數據庫的時候需要異步的執行inDataBase或inTransaction來進行。

1.怎么上傳圖片到服務器,詳細流程。
2.事件傳遞,
3.c指針問題
4.自定義控件怎么傳遞事件給控制器,幾種方式。
5.mvc
6.cell上顯示網絡數據,網絡很慢,cell進了復用池怎么搞
7.你在項目中怎么處理ipv6的問題的
通過getaddrinfo轉換ipv4得到ipv6地址(這里我也被坑過了低版本的系統轉換不了ipv6,想測試只能升級系統),獲得ipv6地址后,可以判斷地址字符串是否用“:” 來確定使用哪一種socket的通訊方式,判斷方法:std::strdchr(const char* value, const char* subStr),如果是NULL,則使用ipv4 socket連接

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,406評論 6 538
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,034評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,413評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,449評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,165評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,559評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,606評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,781評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,327評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,084評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,278評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,849評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,495評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,927評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,172評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,010評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,241評論 2 375

推薦閱讀更多精彩內容

  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結起來就是把...
    Dove_iOS閱讀 27,197評論 30 471
  • 1.1 談一談GCD和NSOperation的區別? 首先二者都是多線程相關的概念,當然在使用中也是根據不同情境進...
    John_LS閱讀 1,319評論 0 12
  • 史上最全的iOS面試題及答案 iOS面試小貼士———————————————回答好下面的足夠了----------...
    Style_偉閱讀 2,372評論 0 35
  • 多線程、特別是NSOperation 和 GCD 的內部原理。運行時機制的原理和運用場景。SDWebImage的原...
    LZM輪回閱讀 2,025評論 0 12
  • 門前老樹長新芽,院里樹木又開花。春夏秋冬,27載不禁感嘆時間都去哪了? 1997年我6歲,臘月里的某一天陽光燦爛。...
    書緒閱讀 323評論 0 3