@@ -36,7 +36,8 @@ public enum DataType {
3636 case String
3737 case Blob
3838 case Null
39- case Numeric
39+ case Int
40+ case Double
4041}
4142
4243public enum ActionType {
@@ -135,19 +136,19 @@ public class Value {
135136 type = . String
136137 stringValue = value as! String
137138 } else if ( mirror. subjectType == Float . self) {
138- type = . Numeric
139+ type = . Double
139140 numericValue = NSNumber ( value: value as! Float )
140141 } else if ( mirror. subjectType == Double . self) {
141- type = . Numeric
142+ type = . Double
142143 numericValue = NSNumber ( value: value as! Double )
143144 } else if ( mirror. subjectType == Data . self) {
144145 type = . Blob
145146 blobValue = value as! Data
146147 } else if ( mirror. subjectType == Int . self) {
147- type = . Numeric
148+ type = . Int
148149 numericValue = NSNumber ( value: value as! Int )
149150 } else if ( value is NSNumber ) {
150- type = . Numeric
151+ type = . Double
151152 numericValue = value as! NSNumber
152153 } else if ( value is NSString ) {
153154 type = . String
@@ -158,7 +159,7 @@ public class Value {
158159 }
159160
160161 public func asBool( ) -> Bool {
161- if type == . Numeric {
162+ if type == . Int {
162163 return numericValue. boolValue
163164 }
164165 return false
@@ -170,8 +171,12 @@ public class Value {
170171 return stringValue
171172 }
172173
173- if type == . Numeric {
174- return numericValue
174+ if type == . Int {
175+ return numericValue. intValue
176+ }
177+
178+ if type == . Double {
179+ return numericValue. doubleValue
175180 }
176181
177182 if type == . Blob {
@@ -188,24 +193,28 @@ public class Value {
188193 return nil
189194 }
190195
191- public func asNumber ( ) -> NSNumber ? {
196+ public func asInt ( ) -> Int ? {
192197
193- if type == . Numeric {
194- return numericValue
198+ if type == . Int {
199+ return numericValue. intValue
195200 }
196201
197202 return nil
198203 }
199204
200- public func asInt ( ) -> Int ? {
205+ public func asDouble ( ) -> Double ? {
201206
202- if type == . Numeric {
203- return numericValue. intValue
207+ if type == . Double {
208+ return numericValue. doubleValue
204209 }
205210
206211 return nil
207212 }
208213
214+ public func getType( ) -> DataType {
215+ return type
216+ }
217+
209218}
210219
211220public class Action {
@@ -236,8 +245,10 @@ public class Action {
236245 switch type {
237246 case . String:
238247 builtStatement = " ALTER TABLE \( table) ADD COLUMN \( addColumn) TEXT; "
239- case . Numeric :
248+ case . Double :
240249 builtStatement = " ALTER TABLE \( table) ADD COLUMN \( addColumn) NUMERIC; "
250+ case . Int:
251+ builtStatement = " ALTER TABLE \( table) ADD COLUMN \( addColumn) INTEGER; "
241252 case . Blob:
242253 builtStatement = " ALTER TABLE \( table) ADD COLUMN \( addColumn) BLOB; "
243254 default :
@@ -249,8 +260,14 @@ public class Action {
249260}
250261
251262public class Result {
252- var results : [ Record ] ? = nil
253- var error : String ? = nil
263+
264+ public var results : [ Record ] = [ ]
265+ public var error : String ? = nil
266+
267+ public init ( ) {
268+
269+ }
270+
254271}
255272
256273public class SWSQLite {
@@ -396,8 +413,10 @@ public class SWSQLite {
396413 sqlite3_bind_null ( stmt, paramCount)
397414 case . Blob:
398415 sqlite3_bind_blob ( stmt, paramCount, [ UInt8] ( v. blobValue!) , Int32 ( v. blobValue!. count) , SQLITE_TRANSIENT)
399- case . Numeric :
416+ case . Double :
400417 sqlite3_bind_double ( stmt, paramCount, v. numericValue. doubleValue)
418+ case . Int:
419+ sqlite3_bind_int64 ( stmt, paramCount, v. numericValue. int64Value)
401420 }
402421
403422 paramCount += 1
0 commit comments