gpt4 book ai didi

cocoa-touch - URL 未插入 SQLite3 数据库中

转载 作者:行者123 更新时间:2023-11-29 05:07:47 25 4
gpt4 key购买 nike

我试图在 SQLite3 数据库中插入 url 链接,但它崩溃了有谁知道……它正在发生吗?

如果我静态地尝试插入任何网址,它会起作用,但当我获取导航网页的网址时,它会动态地工作......它们不会插入......请建议我如何让它发挥作用。我使用的是 SDK 3.2

这是我的插入函数:

-(BOOL)insertImageToDB:(UIImage *)screenImage forURL:(NSString *)webURL
{
BOOL retValue=NO;
sqlite3 *database;
sqlite3_stmt *insert_statement = nil;

//NSString *localURL = webURL;

NSString *localURL = @"https://www.google.com/";

if (sqlite3_open([[self sqlitePath] UTF8String], &database)==SQLITE_OK)
{
const char *sql = "insert into Web_Image (Screen_Image, url) Values (?,?)";
if (sqlite3_prepare_v2(database, sql, -1, &insert_statement, NULL) == SQLITE_OK) {

NSData *data = UIImageJPEGRepresentation(screenImage, 0);
if(data != nil)
{
sqlite3_bind_blob(insert_statement, 1, [data bytes], [data length], SQLITE_TRANSIENT);
}
else
{
sqlite3_bind_blob(insert_statement, 1, nil, -1 , SQLITE_TRANSIENT);
}
sqlite3_bind_text(insert_statement, 2, [localURL UTF8String], -1, SQLITE_TRANSIENT);
//sqlite3_bind_text(insert_statement, 2, [webURL UTF8String], -1, SQLITE_TRANSIENT);
if(SQLITE_DONE == sqlite3_step(insert_statement)){
retValue=YES;
}
}
sqlite3_reset(insert_statement);
sqlite3_finalize(insert_statement);
sqlite3_close(database);
}
return retValue;
}

其中,screenImage:为当前网页截图。 webURL:是当前网页的url。

最佳答案

对于静态WebPageUrl

NSString *localURL = @"https://www.google.com/";
localURL =[localURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

对于动态网页Url

NSURL * url = Any web page url.....
NSString *localURL =[NSString stringWithFormat:@"%@",url];
localURL =[localURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

现在您可以将此格式化的本地 URL 作为字符串插入数据库中。

关于cocoa-touch - URL 未插入 SQLite3 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3740559/

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