發表文章

目前顯示的是有「Swift_筆記」標籤的文章

Swift - Category Extension

圖片
    在用 OC 寫App的時候,想要在現有的類別裡添加新的方法,又不想要用繼承的方式,那麼可以透過 Category 的方式來解決。     而在 Swift 中做到一樣的效果的時候,可以透過 Extension 的方式來達成。 例如:我要新增一個屬於我的顏色在 UIColor 裡面。 就可以透過 extension 一個屬於我的自訂顏色。 因此在 UIColor 中 就可以新增一個我們自訂的顏色。

[ iOS _ Swift 學習筆記 ] Dictionary 取值排序 (use Dictionary key value)

圖片
Swift DictionAry 取值排序 近期在開發專案的時候,遇到一個問題... 就是在取出 JSON 格式的物件時候,每一次取出來的時候是不會按照順序的, 因此在於資料的處理上就會變成,每次放的位置順序不一至。 所以在把拿到的 JSON 資料轉成物件存放記憶體後,再處理排序的問題。 解決方式是透過幫 Dictionary 排序來完成。 因此在快速 google 後參考了別人的文章後解決這個, Dictionary key 值排序的問題。 主要是透過以下這個方法  public func sorted(by areInIncreasingOrder: ((key: Key, value: value), (key: key, value: Value)) -> Bool ->[(key: Key, value: Value)] 這樣就能順利拿到排序好的  Dictionary 值了。 然後 Swift 3 和 Swift 4 的語法有變動。 因此在 firstKeyRealValue 和 second KeyRealValue   會和參考的文章有所不同。 參考資料來源 Developmnt of the app have a question. When i use JSON get objuct; Every time can't get same  order. So dispose data  first need get JSON data change objuct put in memory and  second solve order. But i get solve question means is use Dictionary. so i goole other people solve. Use Dictionary key value solve.  public func sorted(by areInIncreasingOrder: ((key: Key, value: value), (key: key, value: Value)) -> Bool ->[(ke...

iOS_開發 拿到 Tableview Cell 上的按鈕是哪一個 (Tableview Cell Button)

圖片
近期在開發 iOS App 時候使用到, tableview 而且在我的 tableview 上面會有 一個 Button 和一個 ImageView, 當我點選到圖案時會外跳出一個新的 ViewController 按下 Button 可以類似 加到我的最愛的功能。 這時候就是需要,去知道現在點到的是哪一個 tableview Cell,  一開始的想法是 透過 didSelectRowAt 來看到點選是哪一個 cell   (但這個是無法成功的) 因此在網路上查了資料。 學習到 可以透過 寫自己的 Protocol 來用自己的 delegate 來完成 首先開啟專案與一般的 tableview 一樣, 然後在 cellForRowAt 這個一個方法 要多添加一個 cell.delegate = self 然後再寫一個自己的  Protocol 這裡我們取名,SwiftTableViewDelegate, 這裡面有一個 func 來告訴我們按到哪一個 cell上的按鈕。 接下來在cell的那個 Class 裡面, 把 cell 按下去的按鈕 Action  添加我們剛才的 delegate 最後我們在這個 TableViewController 裡面添加這個自己的delegate 就可以透過這個自定義的方法拿到 目前點選到哪個cell 的 button  參考網頁: Swift: Using Protocols to Add Custom Behavior to a UITableViewCell

Swift 字串的處理 _ strSample.characters.split (separator: )

圖片
把字串分拆,放入陣列 有個字串是 "25,09,37.8" 要把它分別拆開成為一個一個放入陣列的時後 可以透過 strSample.characters.split(separator: ",").map(String.init)  方式來分拆 let useString = "25,09,52.20" func useSample(strSample: String!) -> [String]{     let arrSample = strSample.characters.split(separator: ",").map(String.init)     return arrSample } print("change UseString \(useSample(strSample: useString))") 這時候就可以做其他相關運用了.....

IOS-Swift 學習筆記_( 陣列 字典與集合)

圖片
上一篇寫到的陣列部份,而這一篇將提到字典和集合! 首先做一個陣列與字典的寫法差異 藉由這一張的陣列Array與字典Dictionary 可以清楚看到, 兩者在於把文字串起來的方式是有所不同的! 而在新增刪除修改 字串,數字,浮點數進入的方式與陣列的模式是一樣的。 通常 注重順序關係 的時候會用到Array, 而如果是要管理的資料有 Key-Value對應關係 的話會用到Dictionary 來處理 # 集合(Set):用法和Array很類似,但是不具有順序,只是記錄一群的物件

IOS-Swift 學習筆記_(元組.元素Tuple / 陣列Array)

圖片
常用的基本資料結構! # 元組 ( Tuple ) :可以把多個變數/常數,組合成一個新的變數。 例如: let box1 = (3,2,1,"盒子") let 盒子體積1 = box1.0 * box1.1 * box1.2 而也可以替他命名,用這些命名來取出要的元素 let box2 = (h:3,w:2,d:1,name:"盒子") let 盒子體積2 = box2.h * box2.w *box2.d *box2.name # 陣列 var lunch = ["豬排套餐","義大利麵","雞排套餐"] lunch [1]    //這時候會印出: 豬排 var byLunch = "買" + lunch[1]    //這時候會印出: 買豬排 在陣列的運用上與objective-c 大致一樣,唯獨不一樣的是! 在swift當中, 兩個陣列是可以直接加起來的 創造一個空的陣列, 目前在思考的是,如果創造一個空陣列後不清楚要哪一個型別,直接都寫Any會不會比較好

IOS-Swift 學習筆記_(變數 常數)

圖片
在Swift語言當中把變數的 型別省略了,系統會自己判斷 ! 直接用var 和 let這兩種來指定變數與常數! 在Swift語言當中,把常數的寫法適是用let! 而在這個let開頭所引導的值,是 不可以改變的 ,如果要變動則是要把它寫成var 預設值的部份,可以最後再寫(要用前在寫即可 ) 但是在 型別的運算是比較嚴格的,型別不符則不能運算! 這樣才是正確轉型的方式 或是這樣轉 從這裡我們可以看出來轉則不同型態後,所運算出來的內容結果也會有所不同! 因此在使用前,要先想好這個是要用哪一種型態來運算 注意這裡是一個重大的不同 (number++  ;   ++number 這個功能被移除了) 筆記:        這一篇主要紀錄是在swift中在前面不用宣告型態,直接用var 和 let 讓系統幫你去判斷,string /number ... 等類型!         如果上面所看到的直接可以使用,但是在於不同類型的運算上,有嚴格的限制!!(不同型別不能做運算,只能透過轉型)        而最重要的++功能拿掉了。 # swift語法的四則運算方式和objective_c / java 的方式一樣! (但廢除number++ 這個用法 ) # UIButton( ) 這個意思是製造一個 Button double( ) 這個意思是製造一個 double # ( ) 這個括號的名字叫做:建構式 從這就開始感覺到,有種學完swift後,就讓人不想回去寫objective-c了! 目前筆記內容也會偏向把兩者差異給記錄下來,即使未來swift越來越完整後,沒人用objective-c還是一個不錯的紀錄進化史!

IOS-Swift 開發筆記_學前心得比較

圖片
接下來也會花一些時間來記錄,Swift語法的學習筆記! 目前從閱讀一些內容後,跟之前還沒接觸到Objective-C時的心得想法又有所不同! 以前在網路上收尋到的資料,大家都說Swift很好學習;在還沒接觸Objective-C前覺得沒什麼感覺,但在兩者有學習後才更明顯的感覺出網路上大家都說Swift比較容易明白暸解。 快速瀏覽前幾頁的時候感覺,很多部分變得比較簡化明瞭易懂更直覺。 在此先做一個學前紀錄,等學完之後再寫一篇心得感想,來做整體的紀錄。