gpt4 book ai didi

iphone - 如何解决运行时错误NSString,sqlite3_column_text NULL问题?

转载 作者:行者123 更新时间:2023-12-03 20:17:44 31 4
gpt4 key购买 nike

我是 iPhone 应用程序开发人员的新手,我正在使用 sqlite3 数据库,在应用程序委托(delegate)中,我遵循代码并正确运行,我们还发现从数据库到我的应用程序的值(value),

但应用程序立即就会崩溃,为什么会发生这种情况,我不明白。

代码如下

        -(void)Data
{
databaseName = @"dataa.sqlite";

NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
databasePath =[documentsDir stringByAppendingPathComponent:databaseName];

[self checkAndCreateDatabase];

list1 = [[NSMutableArray alloc] init];

sqlite3 *database;
if (sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
{
if(detailStmt == nil)
{
const char *sql = "Select * from Dataa";
if(sqlite3_prepare_v2(database, sql, -1, &detailStmt, NULL) == SQLITE_OK)
{
//NSLog(@"Hiiiiiii");
//sqlite3_bind_text(detailStmt, 1, [t1 UTF8String], -1, SQLITE_TRANSIENT);
//sqlite3_bind_text(detailStmt, 2, [t2 UTF8String], -2, SQLITE_TRANSIENT);
//sqlite3_bind_int(detailStmt, 3, t3);

while(sqlite3_step(detailStmt) == SQLITE_ROW)
{
//NSLog(@"Helllloooooo");




NSString *item= [NSString stringWithUTF8String:(char *)sqlite3_column_text(detailStmt, 0)];
//NSString *fame= [NSString stringWithUTF8String:(char *)sqlite3_column_text(detailStmt, 1)];
//NSString *cinemax = [NSString stringWithUTF8String:(char *)sqlite3_column_text(detailStmt, 2)];
//NSString *big= [NSString stringWithUTF8String:(char *)sqlite3_column_text(detailStmt, 3)];

//pvr1 = pvr;
item1=item;
//NSLog(@"%@",item1);

data = [[NSMutableArray alloc] init];


list *animal=[[list alloc] initWithName:item1];

// Add the animal object to the animals Array
[list1 addObject:animal];
//[list1 addObject:item];


}
sqlite3_reset(detailStmt);
}
sqlite3_finalize(detailStmt);
// sqlite3_clear_bindings(detailStmt);
}
}
detailStmt = nil;
sqlite3_close(database);

}

当我们看到控制台时,它们显示以下错误

    2010-03-09 10:02:40.262 SanjeevKapoor[430:20b] *** Terminating app due to uncaught     exception 'NSInvalidArgumentException', reason: '*** +[NSString stringWithUTF8String:]:    NULL cString'

当我们看到调试器时,它们在以下行中显示错误

          NSString *item= [NSString stringWithUTF8String:(char *)sqlite3_column_text(detailStmt, 0)];

我无法解决这个问题,请帮助我。

最佳答案

您可以使用 NSString stringWithFormat:@"%s" 。这也可以优雅地处理 NULL 值。

关于iphone - 如何解决运行时错误NSString,sqlite3_column_text NULL问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2406931/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com