0
私は、外部センサからキャプチャしたデータをiphoneで保持するNSMutable配列を持っています。その配列を別のファイルのデータベースにダンプしたいです。そして、私はどのようにそれが行われているのか分かりません。 NSMutableArrayのでNSMutable配列をSqlite3に渡す
Databaseクラス
- (id) init {
self = [super init];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirecotry = [paths objectAtIndex:0];
NSString *databaseFilePath = [documentsDirecotry stringByAppendingPathComponent:@"ForceGaugeDatabase"];
BOOL databaseExists = [[NSFileManager defaultManager] fileExistsAtPath:databaseFilePath];
database = [[FMDatabase alloc] initWithPath:databaseFilePath];
if(!databaseExists){
[self createDatabase];
}
return self;
}
-(void) createDatabase{
[database open];
NSString *query = [NSString stringWithString:@"CREATE TABLE forcegauge (forcelb INTEGER, forcekg INTEGER, forcenewton INTEGER, forceoz INTEGER, analoginput INTEGER);"];
if([database executeUpdate:query]) {
for(int i = 0; i < 6 ; i++) {
query = [NSString stringWithFormat:@"insert into forcegauge (forcelb, forcekg, forcenewton, forceoz, analoginput) values (%d,20,30,40,100,9);", i];
[database executeUpdate:query];
query = [NSString stringWithFormat:@"insert into forcegauge (forcelb, forcekg, forcenewton, forceoz, analoginput) values (%d,34,45,55,90,2);", i];
[database executeUpdate:query];
query = [NSString stringWithFormat:@"insert into forcegauge (forcelb, forcekg, forcenewton, forceoz, analoginput) values (%d,35,55,65,95,3);", i];
[database executeUpdate:query];
query = [NSString stringWithFormat:@"insert into forcegauge (forcelb, forcekg, forcenewton, forceoz, analoginput) values (%d,40, 53, 67,90,4);", i];
[database executeUpdate:query];
}
} else {
NSLog(@"Error Creating Table");
}
[database close];
}
クラス。
-(void) forceCalculationKg{
NSNumber *number = [controller. analogInValues objectAtIndex:0];
[controller enableDigitalInputs:YES];
double value = [number doubleValue];
double force;
force = 0.2908 *pow(2.718,(1.2089 * value));
double forcekg;
forcekg = force/2.2;
[kgarray addObject:[NSNumber numberWithDouble:forcekg]];
forceoutput.text = [NSString stringWithFormat:@" %0.1f", forcekg];
}
ここで、kgarrayは、外部センサーを介して更新されているすべてのデータを保持します。そして、私はkgarrayが保持するデータをForceGaugeDatabaseに転送したいと思います。
テーブルの既存の行を更新するか、新しいテーブルを挿入しますか? コードスニペットには、すでにテーブルに新しい行を挿入する方法の例があります。 –
@lunatic新しいテーブルを挿入したいのですが。この挿入はテストと同じです。しかし、私は5つのNSMutable配列を別のクラスに持っています。これは外部センサーからキャプチャされた異なる値を保持しています。だから私はNSNumberとしてそれを抽出し、変数に格納する必要があります。そして私はどのようにNSNumbersをデータベースに渡すことができるのか分かりません。 – ilaunchpad