1. 程式人生 > >iOS Swift 按鈕控制 簡單檔案讀寫

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(

"按鈕",for:.normal)

//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!")

         //}

    }