做iOS開發需要紮實的C 基礎嗎?

時間 2021-05-31 22:59:51

1樓:shuice

1. 做iOS開發需要紮實的C/C++基礎嗎?

對有效能優化需求專案,最好是有紮實,不要求精通,因為

在面對效能問題的時候有更多的優化空間。當會遇到上萬條資料庫查詢與寫入,使用者等待時間可以縮短到原先的1/10,資料序列化和反序列化可以縮短時間到原先1/16。節省了時間除了可以幫使用者節省時間外,還可以將非同步操作修改為同步操作,減少邏輯錯誤發生。

一種語言的效能對比一般是和C語言對比,所以每當我們寫下一句話的時候,我們會想到這句話的代價和C語言相比,大麼?例如非常方便的函式-[NSFileManager subpathsAtPath:]

在寫的時候就需要考慮,目標目錄的子目錄和檔案多麼?如果多,是不是該用另外的遍歷子目錄和檔案函式,隨時選擇掃瞄呢?

OC中有一些實現是需要C幫忙的,這時候要特別小心記憶體的歸屬問題。比如需要對錄音資料進行變音處理,或者需要對影象做SDK不常規處理,出於效能考慮,一般都是C/C++語言。

對深入理解OC語言有幫助,例如block的實現,為什麼有的block在記憶體heap上,有的block在記憶體stack上,

2. 學到什麼程度才算是「紮實」的C++基礎? 為了配合做iOS開發,不需要那麼精通,比如不用了解析構函式如何實現的,建議了解標準庫中的容器類實現原理,包括vector動態增長,map儲存結構,和iOS中容器類對比了解,我經常問別人C++中的map和OC中的NSDictionary儲存有什麼區別,題主提到多年開發C#,對各種容器的使用相信是非常熟悉,也可以拿來對比思考下。

C++語法知識點非常多,如果不是經常用,還是不要深究,容易忘記。

3. 如果在不會C++的情況下,去找iOS開發的工作會不會比較難? 不會很難,不過OC的面試題目一般都不難,怎麼才能區別一般面試者和優秀面試者呢,所以有了一些C++題目,與其說是C++題目,不如說是C題目,考資料結構之類的,字串查詢,鍊錶操作,不只是面試iOS,面試其它崗位的程式開發也考這些的,大公司也考資料結構(Homebrew作者解不出面試題,被Google拒絕),因為這些是考慮思維縝密的題目,如果這些不會還是建議多看看面試資料,如果實在沒有時間,可以整理自己優秀作品,或者對自己擅長的突出說明,例如非常懂HTTP,能背的出200-500大部分錯誤碼含義。

4. 如果不會C++對於後續從事iOS開發的職業發展有什麼影響?看專案是否需要,如果專案很簡單,不會有效能問題,影響不大,iOS中知識點很多,多學習,直到別人不知道的,增加自己的競爭力,一定有機會會成為佼佼者的。

5. 給題主留兩道思考題,用於飯後閒者時間

為什麼OC沒有實現先進後出資料結構stack和先進先出資料結構queue。

OC的NSArray和C++中的vector在記憶體不夠分配記憶體上有什麼區別麼?如果有,為什麼要這麼設計

2樓:馮東

如果乙個專案有老手細心管理,而且令行禁止,其實是很少有必要用到 C++ 的。但是大多數公司的管理層不懂技術,老手的權力又沒達到,不願意得罪人,或者老手本人就是 obsessed by C++ 的人。所以很少有沒有被 C++ 汙染的專案。

所以自然要找多少了解 C++ 的。

機器學習是否需要完整紮實的數學基礎?

古月風耳 上過大學基本都問題不大 缺什麼補什麼。現在和你之間上學的被動學習過程不一樣了。當然如果機器學習要一直朝這個方向發展當然要打牢基礎 後面這個就可能是你的底層競爭力。 個人之前有幸自學過一部分機器學習。貴圈內比較流行的一句話是 數學好不好不影響入門,但是決定了以後在行業內的天花板。這句話的確很...

27零基礎想入門ios開發需要做好哪些準備?

本科是211的話入行iOS開發應該不難,這個行業三本大專的也是大把的人在做,不過現在入行時間點不對,做的人太多了,所以還是去學前端吧。 codesign 你真的確定要進入這一行嗎?這條路不是那麼好走。我的情況跟你差不多,我是29歲開始進入開發崗的,只不過我的專業就是計算機,雖然畢業後沒有從事開發,但...

入門ios開發,正在學C和OC,OC對C的要求大嗎?

風止 C語言是入門需要學的,然後是OC,這兩個算是iOS開發的基礎課程吧 如果您對iOS開發課程體系有所了解,你就不會這麼煩惱了.自學學習效率其實不高,如果條件允許可以系統的學習一下. Ying Zhong 首先Objective C是C的超集這你應該是知道的,這和C 與C的關係還不同,ObjC完全...