2019年7月25日 星期四
關於 Embarcadero RAD Studio 10.3 Update 2 - Android build-tools
安裝後 Android SDK並沒有安裝完整
請依下列步驟
C:> CD C:\Users\Public\Documents\Embarcadero\Studio\20.0\PlatformSDKs\android-sdk-windows\tools
C:> android.bat update sdk --no-ui --all --filter platform-tools,build-tools-28.0.2,android-26
安裝後的目錄如下
C:\Users\Public\Documents\Embarcadero\Studio\20.0\PlatformSDKs\android-sdk-windows\build-tools\28.0.2
2019年7月24日 星期三
RAD Studio: 重新編譯 TeeChart
這個好像只有在中文環境的Windows 才會發生
解決方法
先把作業系統語系換成英文
編譯完成後 再換回中文
Cannot recompile Delphi package:
VCLTee.TeeConst.pas(612) Error: E2066 Missing operator or semicolon
VCLTee.TeeConst.pas(1014) Error: E2066 Missing operator or semicolon
2019年7月19日 星期五
2019年7月17日 星期三
iOS swift 5: Thread Mode-String Array Index Out of Range
在兩個Thread中同時對同一個 String Array進行快速的 append 和 remove
就會發生 Index Out of Range
已使用網路上找到的各種修改 extension Array方案都無效
var dataList = [String]() ... func Thread1_RemoveFun() { ... DispatchQueue.global().async /* 問題就出在這一行 */ { ... if( dataList.Count > 0) { dataList.remove(at: 0) } ... } ... } func Thread2_AppendFun() { ... dataList.append("Test") ... } func Thread3_ReadFun() { if( nIndex < dataList.Count) { // dataList.count 輸出是 1 但還是發生 // 用Debug breakpoint去看, dataList.count 盡然是 0 print( \(dataList.count)" readStr = dataList[nIndex] } }
同一個head, Auto Express 和 Add Express 竟然顯示不同數值
搞不懂...
2019年7月2日 星期二
iOS swift 5: Xcode Project SQLite Bundle
解決方案來源:
bundle to documents directory in iOS
Step 1: 把 SQLite的資料庫檔案MyDatabase.db 拖拉到 Xcode Project中
Step 2: 設定 Copy Bundle Resources 加入剛才拖拉到 Xcode Project中MyDatabase.db
Step 3:
func copyfileToDocs() { let bundlePath = Bundle.main.path(forResource: "MyDatabase", ofType: ".db") print(bundlePath!, "\n") //prints the correct path let destPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first! let fileManager = FileManager.default let fullDestPath = NSURL(fileURLWithPath: destPath).appendingPathComponent("fj200ls.db") let fullDestPathString = fullDestPath?.path print(fileManager.fileExists(atPath: bundlePath!)) // prints true do { try fileManager.copyItem(atPath: bundlePath!, toPath: fullDestPathString!) print("DB Copied") } catch { print("\n") print(error) } }
2019年7月1日 星期一
iOS swift 5: SQLite 用法
都試過後, 選擇使用 FMDB 方式, 比較簡單
方式1:
解決方案來源:
Accessing an SQLite Database in Swift
Swift起步走-SQLite
在iOS裡操作SQLite筆記 - 資料集(一)
Swift SQLite Tutorial for Beginners – Using SQLite in iOS Application
muhlenXi-使用FMDB 管理SQLite 數據庫
方式2: 使用 SQL.swift
SQLite.swift
SQLite.swift簡單實用筆記
iOS Swift 4.0:第三方SQLite框架SQLite.swift 使用(一)
如果是使用 swift 5 安裝流程
一定要使用
[sudo] gem install cocoapods
方式3:
解決方案來源:
FMDB與SQLite 數據庫應用示範
iOS - 利用 FMDB 第三方框架來操作 SQLite 檔案
Swift - 第三方SQLite庫FMDB使用詳解1(安裝配置、工具類封裝)
方式1:
解決方案來源:
Accessing an SQLite Database in Swift
Swift起步走-SQLite
在iOS裡操作SQLite筆記 - 資料集(一)
Swift SQLite Tutorial for Beginners – Using SQLite in iOS Application
muhlenXi-使用FMDB 管理SQLite 數據庫
方式2: 使用 SQL.swift
SQLite.swift
SQLite.swift簡單實用筆記
iOS Swift 4.0:第三方SQLite框架SQLite.swift 使用(一)
如果是使用 swift 5 安裝流程
一定要使用
[sudo] gem install cocoapods
target 'YourAppTargetName' do pod 'SQLite.swift', '~> 0.12.0' end
pod install --repo-update
方式3:
解決方案來源:
FMDB與SQLite 數據庫應用示範
iOS - 利用 FMDB 第三方框架來操作 SQLite 檔案
Swift - 第三方SQLite庫FMDB使用詳解1(安裝配置、工具類封裝)
訂閱:
文章 (Atom)