IngramChen 積分 4 編輯於

swift 3 只有說之後會有 ABI 相容1

但 swift 4 仍然保留了可能會 break change 的說法。

不過我覺得可以入坑了,之後改的會越來越少吧。而且你寫 iOS 的話一定要會用 swift,因為新的 library 可能都只有 swift 版了,不能再等。

然後處理 break change 是工作的一部份,躲也躲不掉的。回報給你上級,說這是 iOS 開發成本的一部份。說實在的,Apple 把語言設計錯誤的責任轉嫁給用戶 (開發者),實在是不可取。

如果不是寫 iOS 就不要碰 Swift 了,浪費生命。

chao 積分 0

哈哈,直接偵測腳出多少力及採多久比外在環境準多了!

IngramChen 積分 0

身為單車重毒者,這實在很有趣啊…

不過這種東西不會很準,因為是用氣流估計,市面上便宜的功率計大概接近二萬台幣

Kros 積分 0

其實就是規則先訂出來,之後再視情況慢慢抓。

IngramChen 積分 0

其實我也很納悶apple 的規則, 下載 binary 不行, 下載 javascript 就可以. 開發者還是能跳過 review 流程幹所有的壞事啊

siuying 積分 1

這麽一個重點功能,居然無聲無息就消失了

siuying 積分 0 編輯於

再舉一個例子:

[array appendContentsOf:@[@2, @3, @4]]; 變成 array.append(contentsOf: [2, 3, 4]) 重點是 Swift 化而不是縮短

siuying 積分 0

是詛咒或是祝福,視你的心情而定 :)

IngramChen 積分 0

感謝回應。

我了解了,長名稱的詛咒還是沒有消失。

siuying 積分 1 編輯於

這次改變1 重點真不是方法長短 :

-public func readLine(stripNewline stripNewline: Bool = true) -> String?

+public func readLine(strippingNewline strippingNewline: Bool = true) -> String?

IngramChen 積分 0 編輯於

如果 Apple 能再重新設計一次 Objective C,那就不會再用長命名了吧。

siuying 積分 0

BTW the idea behind is still the same "clarity over brevity"

siuying 積分 0

no, they automatically convert Objective-C convention to Swift conventions. So when you use Swift, you write eloquent Swift code, and when you write Objective-C, you write eloquent ObjC code.

I think this is one of a kind and Apple is the first one did something like that, impressive feat. They even translate C based API to object like API: Import As Member1

IngramChen 積分 0

safari 才能開。

Swift3 移掉了一些語言功能,不過 XCode8 可以自動轉換的 (但問題在 3rd party...)

最後,那些 Objective C 遺傳下來的超長變數/方法的命名終於要拿掉了。哎哎,Apple 終於承認那個鬼命名規則是錯的。

siuying 積分 1

其實這不奇怪,因為 Facebook 自己重新用土法 Implement List View ,又不像 iOS UITableView 那樣 reuse views ,在長的 list 當然慢到七彩。

siuying 積分 0

連簡單如 Table 也要另外用 native 的 Component Kit 才行,我真不知這算不算成功了

IngramChen 積分 0

這一篇的分享他們 web 和 iOS 間 share code 還算成功,但可惜的是 react android 他們還是做不起來…

siuying 積分 0

不是啊,是 Apple 在 WWDC 前先公佈這個大消息,即是說蘋果有太多東西要說 Keynote / Platforms State of Union 兩場也講不完

siuying 積分 1

我覺得他們是欠下很多技術債,因為 React Native 做不到很多事他們混用了不同的技術。省下來的跨平台代碼只是一些表面和簡單的介面 (Flux Store/Action),但卻加大了整合的難度,要理解整個專案也得同時懂得 iOS, React Native 和 Component Kit (ObjectiveC++) 才行。

IngramChen 積分 0

這新聞吵翻了... 訂閱制沒有用戶會爽的

WWDC 應該就會正式公佈了

siuying 積分 0

我就是說你的推論全錯了,要是 dangling pointer 是 crash 的主因,那在沒有 dangling pointer 的地方就很少 crash 了,對不?