- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个从 sqlite 数据库读取数据的应用程序,使用此方法读取数据并将其包含在对象中....我用 NSLog 进行了检查
#import "ViewController1.h"
#import "Ricetta.h"
#import "AppDelegate.h"
static sqlite3_stmt *leggiStatement = nil;
@interface ViewController1 ()
@end
@implementation ViewController1
@synthesize Webmain, oggetto2;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
//percorso file su cartella documents
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *path = [documentsDir stringByAppendingPathComponent:@"Rice.sqlite"];
//controllo se il file esiste
if(![[NSFileManager defaultManager] fileExistsAtPath:path])
{
//se non esiste lo copio nella cartella documenti
NSString *pathLocale=[[NSBundle mainBundle] pathForResource:@"Rice" ofType:@"sqlite"];
if ([[NSFileManager defaultManager] copyItemAtPath:pathLocale toPath:path error:nil] == YES)
{
NSLog(@"copia eseguita");
}
}
[self personalizzaAspetto];
[self carica_ID];
// NSString * query = @" SELECT Immagine, Titolo, Descrizione FROM LIBRO";
// NSArray * arrayQuery = [[NSArray alloc] initWithObjects:@"Immagine",@"Titolo",@"Descrizione",nil];
// NSArray * arrayElementi = [self caricaValoriMain:query :arrayQuery];
Webmain= [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 365)];
NSString *htmlString =[NSString stringWithFormat:@"<html> \n"
"<head> \n"
"<style type=\"text/css\"> \n"
"body {font-family: \"%@\"; font-size: %@;}\n"
"</style> \n"
"</head> \n"
"<body><center><img src='%@'/></center></body><center><h1>%@</h1></center><body bgcolor=\"#FFFFFF\" text=\" #ffa500\">%@</body></html>" ,@"futura",[NSNumber numberWithInt:15],oggetto2.Immagine,oggetto2.Titolo,oggetto2.Descrizione];
[Webmain loadHTMLString:htmlString baseURL:nil];
[self.view addSubview:Webmain];
-(void)carica_ID{
sqlite3 *database = NULL;
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *dbPath = [documentsDir stringByAppendingPathComponent:@"Rice.sqlite"];
if(sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK)
{
if(leggiStatement==nil){
const char *sql = "select Immagine,Titolo,Descrizione from LIBRO WHERE RicettaID=1";
if(sqlite3_prepare_v2(database, sql, -1, &leggiStatement, NULL) != SQLITE_OK)
NSAssert1(0, @"Errore creazione compiledState '%s'", sqlite3_errmsg(database));
}
//while(sqlite3_step(leggiStatement) == SQLITE_ROW)
if(SQLITE_DONE != sqlite3_step(leggiStatement))
{
NSString *titolo = [[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(leggiStatement, 1)];
NSLog(@"%@",titolo);
oggetto2.Titolo=titolo;
NSString *descrizione = [[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(leggiStatement, 2)];
NSLog(@"%@",descrizione);
oggetto2.Descrizione = descrizione;
NSString *image= [[NSString alloc]initWithUTF8String:(char *)sqlite3_column_text(leggiStatement, 0)];
NSLog(@"%@",image);
oggetto2.Immagine= image;
}
sqlite3_finalize(leggiStatement);
}
sqlite3_close(database);
}
@end
我的问题是我无法将它们放入 webMain 中...webMain 中的对象仍然是空的。
我不使用 Xib。
最佳答案
在提供的代码片段中,您从未执行 oggetto2
的 alloc
和 init
。因此,它是 nil
,因此尝试设置其属性将一事无成。
除了您现有的 NSLog
语句外,我还建议您在执行 之前对
,因为通过查看源代码可以更轻松地了解您的 HTML 发生了什么,而不是尝试从空白的 Web View 中进行推断。htmlString
执行 NSLog
loadHTMLString
与您的问题无关,但您可能不应该拥有可能在最终确定后重用静态 sqlite3_stmt
的代码。第一次调用 carica_ID
时,您将初始化静态 leggiStatement
。但是您最终执行了 sqlite_finalize
,但没有将 leggiStatement
设置为 nil
。如果您第二次调用此方法,它不会再次 sqlite3_prepare_v2
,但您将释放与之前的 leggiStatement
关联的资源。
几个简单的修复:
不要将 leggiStatement
设为静态全局变量,而是将其设为方法的局部非静态变量;
如果您执行sqlite3_finalize
,请确保您也将leggiStatement
设置为nil
;或者
不要调用 sqlite3_finalize
,而只是调用 sqlite3_reset
,这将重置准备好的语句,但不会释放其资源。
关于ios - 将数据 SQlite 加载到 htmlString iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14789550/
var $fragment = $(" "); $("#x").text($fragment.length); 看到这个 fiddle ...... http:/
ASP.NET MVC 的优势 或 ?为什么? 最佳答案 如果它返回 MvcHtmlString 则无所谓; <%:会知道它是预转义的。因此,我会使用 <%:这样审稿人就不需要考虑“这是转义了吗?
我试图在 WkWebView 中显示我之前下载并存储在字符串中的 html 页面。 这就是我设置 WkWebView 的方式: webView = WKWebView(frame: self.
我正在努力升级一些使用 jQuery 1.7.2 版的旧软件。由于添加了一些新插件并且需要更新版本的 jQuery,我已将其升级到版本 1.12.1。 然而,有大量使用 jQuery(htmlStri
appendTo 的 API 文档列出可以为目标选择一个 HTML 字符串的方法。 但是,这似乎没有用,因为该集合仍然包含原始元素,并且 HTML 字符串似乎没有添加到 DOM 中的任何地方,我也看不
我稍微玩了一下 jQuery,然后有了一个想法,所以我决定试一试。 $('table').append(''); 如你所想,这产生了: table -thead --tr ---th ---th --
本类(class):HtmlString html = $html; } /** * Get the HTML string. * * @return string
我正在查看 MvcHtmlString 及其基类 HtmlString 的源代码,它们似乎都是字符串的无用包装器。 我记得有一次我做过这个练习并看到了好处,但现在想不起来了。当时我花了很多时间研究 M
当我尝试从 HTML 生成 PDF 时,一些土耳其语字符如 ĞÜŞİÖÇ ğüşıöç PDF 中缺少这些字符,我看到一个空格代替了这些字符,但我想打印该字符。 我的代码是: public virt
HtmlString 与 MvcHtmlString 这两者之间有什么区别,或者什么时候更喜欢其中一个? 编辑: 与 HtmlString 相比,MvcHtmlString 更受青睐的是 MvcHtm
我使用Jquery保存在html_data变量HTML代码中。特别是 Jquery(document).ready(function(){ html_data = $('.row').htm
它是一个在 Visual Studio 2017 上运行的 .Net Core 2.0 应用程序我想显示在 View 上返回的 HTML 字符串。 我添加了Microsoft.AspNetCore.H
如果是 ajax 请求,我有一个方法可以将 javascript 添加到部分 View 的末尾。但我的问题是,当返回脚本时,脚本标签已被删除,我要执行的函数是用纯文本编写的。 if (httpCont
我有一个函数可以做到这一点: document.body.innerHTML += 'lorem ipsum'; 它工作正常,但它破坏了我对其他 div 的引用(我读到这是因为它再次解析正文)。是否有
我有一个从 sqlite 数据库读取数据的应用程序,使用此方法读取数据并将其包含在对象中....我用 NSLog 进行了检查 #import "ViewController1.h" #import "
只是我想在我的对象中有一个属性序列化为字符串而不是 HtmlString(它是)。 这里的原因是对象在 json 中被序列化,toString 函数返回的不是对象的字符串内容,而是“[object O
我有一个包装器,只要字段有值,它就会将标题添加到字段中。该字段实际上是一个字符串,它包含来自 tinymce 文本框的 HTML。 要求:当字段为空或只有空格时,标题不应显示。 问题:html 中的空
你好, 我正在显示一个 html 页面,其中包含一个带有一些输入文本字段和一个提交按钮的表单。 如果我使用 loadRequest 显示页面: 一切正常。 如果我使用 loadHTMLString:b
我创建了一个宏来处理表单错误,如下所示: {% macro render_field_with_errors(field) %} {{ field.labe
我发出了一个http请求并收到了一个htmlString,现在我想将其转换为Dom对象以查询其元素。谢谢你的帮助 最佳答案 您可以创建一个容器对象(我在这里使用了 div),然后将您的 html 字符
我是一名优秀的程序员,十分优秀!