為什麼蘋果調到1970.1.1變磚基於unix時間戳的bug而安卓沒有?是coder沒考慮到的原因?

ios基於unix的時間戳在安卓里基於linux也有,不要再回答這個bug的原因和回答這兩個系統不一樣,我不知道你說的不一樣是什麼意思,是你認為ios和安卓這種很表面的不一樣還是說底層的unix和linux不一樣,這個時間戳問題是安卓基於的linux已經底層優化了還是coder沒考慮到的問題。謝謝所有的回答


題主是覺得這個 Bug 蘋果永遠都解決不了嗎?

就是個 Bug 嘛,iOS 的開發人員犯了錯,就這麼簡單啊……

-------------下面是扯淡----------------

這個鍋估計是內核來背了。POSIX 沒規定 time_t 不能是負的,不過如果設計里不希望系統出現負的時間戳的話,內核就應該像這樣斷然拒絕 :P


明明是測試的鍋!


與優化無關,coder忘記考慮情況。明顯是測試沒做好。


題主還我手機


既然改了問題描述就再答幾句(☆_☆)

系統不一樣吧這個事說起來太多了。

單從系統邏輯設定上說,舉個例子,iOS中系統不允許某些跨應用讀寫數據的操作,假如系統檢測到相應操作正在執行,就會判定不安全,然後觸發一些保護機制比如終止這個操作等等,但安卓在跨應用讀寫數據時系統管的比較松,只要別過分,這些操作是可以被系統允許的。所以比如同一個這麼跨應用讀寫操作,安卓就可以完美執行,iOS就會出錯比如應用閃退。

所以說系統差異太多了,即使拿兩個大版本不同的iOS來比較,很多邏輯也是不同的,更何況是從根上就不一樣的系統。

原答案

為什麼要加「而安卓不會」?兩個又不是一個系統、不是一種語言、不是一波設計團隊,為什麼安卓也要有這個變磚bug?

不僅android不會,windows也不會。

所以加了這五個字上面這些答案就能回答了。

抖機靈完畢。

iOS中時間變數是無符號類型,1970年1月1日是這個變數的0值,把時間設置成1970年1月1日是沒有問題的。但是系統的其他地方會用到以當前時間為基準的時間,比如「當前時間的1天前」等等,這時候由於當前時間已經是時間變數的最小值,再小就觸發了bug。

如有錯誤歡迎指正,萬一勾引出來一個iOS/安卓系統開發者呢。


歪個樓,我蘋果設備都是自動對時的,可能不少用戶也是這樣。

換句話說,如果有黑客能黑掉授時伺服器,把伺服器日期改成1970年1月1日,那麼有一大批蘋果設備就會變磚?


coder未考慮極限情況在先,tester未做邊界條件測試,漏掉該bug在後,責任三七開,coder三,tester七。


聽聞Apple Store各種遭殃


我就問問手沒有人手賤調一下~畢竟實踐出真知


這是我大安卓在知乎上被黑最慘的一次……


為什麼女人能懷孕而男人不行?大家不都是人嗎?


android手機設置完畢以後確實沒有任何問題!


推薦閱讀:

為什麼中國的蘋果體驗店無論何時都那麼多人?
為什麼蘋果(App Store)可以在中國大陸賣軟體,微軟(Marketplace)不行,亞馬遜(Kindle book store)不行?
范冰冰飾演的《蘋果》用了替身嗎?
如何評價2017蘋果秋季發布會?蘋果x和8有哪些驚艷的細節?

TAG:蘋果產品 | 蘋果中國 | Unix | 蘋果產品設計 |