iOS Swift 按鈕控制 簡單檔案讀寫
class CounterViewController:UIViewController{
overridefunc viewDidLoad()
{
// 顯示的呼叫父類函式 super 表示父類
super.viewDidLoad()
// -----------------簡單的UI控制元件 UILabel-----------------------
// (1)建立一個rect 物件
let rect=CGRect(x:20 ,y:100,width:280, height:40)
// (2)建立一個UILabel 引數是一個rect物件
//var label=UILabel(frame:rect)
// 也可以將(1)(2)合成一下
var label=UILabel(frame:CGRect(x:20, y:100,width:280, height:40))
//設定label內容
label.text="理想"
//設定label字型顏色
label.textColor=UIColor.blue
//將label 新增到當前檢視上
self.view.addSubview(label)
//---------------------簡單的UI控制元件 UIButton--------------------
// 建立一個UIButton 並且設計frame
var but=UIButton(frame:CGRect(x:20 ,y:150 ,width:200,height:40))
//設定UIButton 的標題
/*func setTitle(title: String!, forState state: UIControlState)
函式:設定but的名字
引數說明:
(1)提一個引數是but 的名字
(2)第二個引數是這個表示在按鈕那種狀態下是這個名字
說明 .Normal 等價於 UIControlState.Normal
*/
// 給按鈕起一個名字,這個按鈕在Normal在這個狀態下是這個名字
but.setTitle(
//but 新增事件
/*func addTarget(target: AnyObject!, action: Selector, forControlEvents controlEvents: UIControlEvents)
函式:
給but 新增事件
(1)第一個引數是target值, 告訴事件響應的方法在那個物件中
(2)第二個引數是 action 是SEL 寫方法名即可
(3)第三個引數事件型別,響應那種事件
*/
// 給but 新增一個TouchUpInside 型別的事件 ,時間顯示的方法為butClick: 這個方法是在self 的物件中
but.addTarget(self,action:#selector(butClick),for:.touchUpInside)
//將but新增到檢視上
but.backgroundColor=UIColor.red
//將but加入檢視
self.view.addSubview(but)
}
// 按鈕的事件
/*
func butClick(sender:UIButton)
func 宣告函式關鍵字 butClick函式名 sender 可以理解為呼叫者but :UIButton 為呼叫者型別
*/
func butClick()
{
//設定路徑,tmp目錄路徑
let tmpDir = NSTemporaryDirectory()
var url: NSURL = NSURL(fileURLWithPath: tmpDir+"data.txt")
//定義可變資料變數
var data = NSMutableData()
//向資料物件中新增文字,並制定文字code
data.append("Hello Swift".data(using: String.Encoding.utf8, allowLossyConversion: true)!)
let string = "新增一些文字到檔案末尾"
let appendedData = string.data(using: String.Encoding.utf8, allowLossyConversion: true)
let writeHandler = try? FileHandle(forWritingTo:url as URL)
writeHandler!.seekToEndOfFile()
writeHandler!.write(appendedData!)
//用data寫檔案
//if data.write(toFile: url.path!, atomically: true){
//從url裡面讀取資料,讀取成功則賦予readData物件,讀取失敗則走else邏輯
if let readData = NSData(contentsOfFile: url.path!) {
//如果內容存在則用readData建立文字列
NSLog(NSString(data: readData as Data, encoding: String.Encoding.utf8.rawValue) as! String)
} else {
//nil的話,輸出空
NSLog("Null")
}
//}else{
// NSLog("Failed to Write!")
//}
}