· 10 years ago · Sep 23, 2016, 12:02 PM
1@IBAction func pushButton(sender: AnyObject) {
2 print("push")
3
4 let _dbfile:NSString = "sqlite.db"
5 let _dir:AnyObject = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0]
6 let fileManager = NSFileManager.defaultManager()
7 let _path:String = _dir.stringByAppendingPathComponent("(_dbfile)")
8
9 print(_path)
10
11 if (!fileManager.fileExistsAtPath(_path)) {
12 //ファイルãŒãªã„å ´åˆã¯DBファイル作æˆï¼ˆæœ€åˆã®æŠ¼ä¸‹ï¼‰
13 let _db = FMDatabase(path: _path)
14 let _sql = "CREATE TABLE notes (nid INTEGER PRIMARY KEY AUTOINCREMENT,blendName TEXT);"
15
16 _db.open()
17
18 var _result = _db.executeStatements(_sql)
19 print(_result)
20
21 _db.close()
22 } else {
23 //ファイルãŒã™ã§ã«å˜åœ¨ã™ã‚‹å ´åˆï¼ˆï¼’回目以é™ã®æŠ¼ä¸‹ï¼‰
24 let _db = FMDatabase(path: _path)
25 let sql_create_table = "CREATE TABLE IF NOT EXISTS notes (id INTEGER PRIMARY KEY AUTOINCREMENT, blendName TEXT,image MIDIUMBLOB);"
26
27 _db.open()
28
29 var result = _db.executeStatements(sql_create_table)
30 let db = FMDatabase(path: _path)
31
32 let sql_insert = "INSERT INTO notes (blendName) values (?);"
33 let sql_insert2 = "INSERT INTO notes (image) values (?);"
34
35 let sql_select = "SELECT nid, blendName FROM notes ORDER BY nid;"
36 var _result_insert = _db.executeUpdate(sql_insert, withArgumentsInArray: [self.blendName.text])
37 var _result_insert2 = _db.executeUpdate(sql_insert2, withArgumentsInArray: [self.image.image!])
38
39 var rows = _db.executeQuery(sql_select, withArgumentsInArray: nil)
40 while rows.next() {
41 // カラムåを指定ã—ã¦å€¤ã‚’å–å¾—
42 let nid = rows.intForColumn("nid")
43
44 // カラムã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚’指定ã—ã¦å–å¾—
45 let blendName = rows.stringForColumnIndex(1)
46
47 //UIImageã‚’ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«æ ¼ç´ã§ãã‚‹Stringã«å¤‰æ›ã™ã‚‹
48 func Image2String(image:UIImage) -> String? {
49 //ç”»åƒã‚’NSDataã«å¤‰æ›
50 let data = UIImagePNGRepresentation(image)
51
52 //NSDataã¸ã®å¤‰æ›ãŒæˆåŠŸã—ã¦ã„ãŸã‚‰
53 if let pngData = data {
54 //BASE64ã®Stringã«å¤‰æ›ã™ã‚‹
55 let encodeString:String = pngData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)
56 return encodeString
57 }
58 return nil
59 }
60
61 //Stringã‚’UIImageã«å¤‰æ›ã™ã‚‹
62 func String2Image(imageString:String) -> UIImage?{
63 //空白を+ã«å¤‰æ›ã™ã‚‹
64 var base64String = imageString.stringByReplacingOccurrencesOfString(" ", withString:"+")
65
66 //BASE64ã®æ–‡å—列をデコードã—ã¦NSDataを生æˆ
67 let decodeBase64 = NSData(base64EncodedString:base64String, options: .IgnoreUnknownCharacters)
68
69 //NSDataã®ç”ŸæˆãŒæˆåŠŸã—ã¦ã„ãŸã‚‰
70 if let decodeSuccess = decodeBase64 {
71 //NSDataã‹ã‚‰UIImageを生æˆ
72 let img = UIImage(data: decodeSuccess)
73
74 //çµæžœã‚’è¿”å´
75 return img
76 }
77 return nil
78 }
79
80 print("nid = (nid), blendName = (blendName),image = (image)")
81 kakidashi.text = " (blendName)"
82 }
83 _db.close()
84 }
85}