Ios 将值数组插入表中
我在将值数组插入表时遇到了一个问题。。我必须将联系人详细信息数组插入表中。。也就是说,变量中有名字列表,变量中有姓氏列表,等等。。同样,我必须插入24列 它抛出一个异常,表示: ***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[contactlist filepath]:未识别的选择器发送到实例0xa2af5b0'***第一次抛出调用堆栈:(0x257e012 0x1e06e7e 0x26094bd 0x256dbbc 0x256d94e 0x4b613 0x4b551 0x190c589 0x190a652 0x190b89a 0x190a60d 0x190a785 0x1857a68 0x4a0911 0x49fbb3 0x4DDCDCDCDDA 0x25208fd 0x4de35c 0x4de2d5 0x3c8250 0x2501f3f 0x250196f 0x2524734 0x2523f44 0x2523e1b 0x2ad57e3 0x2ad5668 0xd4affc 0x254d 0x2475)lib++.dylib:终止引发异常 有人能帮我解决这个问题吗Ios 将值数组插入表中,ios,uitableview,insert,Ios,Uitableview,Insert,我在将值数组插入表时遇到了一个问题。。我必须将联系人详细信息数组插入表中。。也就是说,变量中有名字列表,变量中有姓氏列表,等等。。同样,我必须插入24列 它抛出一个异常,表示: ***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[contactlist filepath]:未识别的选择器发送到实例0xa2af5b0'***第一次抛出调用堆栈:(0x257e012 0x1e06e7e 0x26094bd 0x256dbbc 0x256d94e
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSError *error;
json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
NSLog(@"json.... %@",json);
id jsonObject = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingAllowFragments error:nil];
NSLog(@"jsonObject=%@", jsonObject);
NSArray *checkArray=[jsonObject valueForKey:@"ND"];
cheDisk=[checkArray valueForKey:@"FN"];
cheDisk1=[checkArray valueForKey:@"LN"];
NSLog(@"FN =%@",cheDisk);
NSLog(@"LN =%@",cheDisk1);
fname = [NSString stringWithFormat:@"%@",[cheDisk objectAtIndex:0]];
lname = [NSString stringWithFormat:@"%@",[cheDisk1 objectAtIndex:0]];
[self insertData];
[ContactTableview reloadData];
}
-(void)insertData
{
if (sqlite3_open([[self filepath]UTF8String], &db) == SQLITE_OK)
{
NSString *insertStatement = [NSString stringWithFormat:@"INSERT INTO pu_Contacts (FirstName, LastName) VALUES ('%@', '%@')", fname, lname];
char *error;
sqlite3_exec(db, [insertStatement UTF8String], NULL, NULL, &error)!= SQLITE_OK;
sqlite3_close(db);
}
}
+(NSString *) filepath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
return [documentsDir stringByAppendingPathComponent:@"UWdatabase1.sql"];
}
此代码的问题是:
[self filepath]
您将该方法定义为类方法
,因此不能使用self
调用它
+(NSString *) filepath
解决方案1:
使用类名更改调用,如[contactlist filepath];
解决方案2:
将方法更改为实例方法,如:
- (NSString *) filepath
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
return [documentsDir stringByAppendingPathComponent:@"UWdatabase1.sql"];
}
类名是什么?通过类名更改
self
,以便调用类方法:
if(sqlite3\u打开([[MyClassName filepath]UTF8String],&db)=SQLITE\u确定)
那么问题出在哪里,fname
和lname
没有插入到表中?字符*错误是怎么说的?NSLog
可以查看发生了什么。contactlist是否有一个名为filepath
的方法?是的..为了获取文件路径..我只是没有将它粘贴到这里,所以减少代码..@ManojEllappan:Issue使用的是filepath
方法。请粘贴代码,但它不起作用。有人能提供自己的代码来实现这一点吗logic@ManojEllappan当前位置问题是什么?您是否尝试了两种解决方案?