【问题标题】:UIButton tag fetching last update value获取最后更新值的 UIButton 标记
【发布时间】:2013-11-08 04:28:38
【问题描述】:

我需要在 UIWebView 中创建多个按钮。所以,我使用标签作为按钮。我使用 INTEGER 将按钮标签保存到数据库中。但这并没有节省适当的价值。每个按钮标签在数据库中都有文本。稍后我需要检索。但是在将最后一个值存储到数据库并单击任何其他按钮后,它只会获取最后一个更新的值。为什么会这样?

表:

textnotes          text_id   button_id

  hi                1         1
  how are you       1         3
im fine             2         7
  This is test       2         11

UI按钮:

int gTag = 1;
webviewbutton.tag = gTag;
 gTag++;

[wbCont.scrollView  addSubview:webviewbutton];

插入:

const char *sqlInsert = [[NSString stringWithFormat:@"insert into textnote (textnotes,text_id,button_id ) values ('%@','%@','%ld')", txtview.text,artID,(long)webviewbutton.tag] cStringUsingEncoding:NSUTF8StringEncoding];

从数据库中检索带有文本的按钮标签:

    textArray=[[NSMutableArray alloc]init];

        webbutton_art=[[NSMutableArray alloc]init];

        webbutton_button=[[NSMutableArray alloc]init];

    if (sqlite3_open([path UTF8String], &database) == SQLITE_OK) {
    const char *sql =  [[NSString stringWithFormat:
                                     @"SELECT textnotes,text_id,button_id FROM textnote where button_id = '%ld' AND text_id = '%@' ",(long)webviewbutton.tag,artID]cStringUsingEncoding:NSUTF8StringEncoding];


                NSLog(@"sql is %s",sql);

                sqlite3_stmt *statement;

                if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) {

                    while (sqlite3_step(statement) == SQLITE_ROW) {

                        txtstring = [[NSString alloc] initWithUTF8String:
                                     (const char *) sqlite3_column_text(statement, 0)];


                        webbutton_textartid = sqlite3_column_int(statement, 1);

                        webbutton_buttontag= sqlite3_column_int(statement, 2);

          [textArray addObject:txtstring];

         [webbutton_art addObject:@(webbutton_textartid)];

                        [webbutton_button addObject:@(webbutton_buttontag)];


    if( webbutton_art  && webbutton_button ){

    for(int i=0;i<[textArray count];i++){


txtview = [[UITextView alloc]initWithFrame:CGRectMake(0,0,320,568)];

        txtview.font = [UIFont fontWithName:@"Helvetica" size:12];


             txtview.text=[textArray objectAtIndex:i];

 [self.view addSubview:txtview];

             }



    }

【问题讨论】:

  • 第一件事是再次检查标签
  • 我没有得到。如何?我需要在检索中更改代码吗?
  • 记录它们以查看您使用断点检查的值,标准,我认为它缺少一个小东西,只有彻底审查才会陶醉
  • int gTag = 1; 我希望你每次都在初始化,它不会递增......
  • or(int i=0;i

标签: ios sqlite tags uibutton nsmutablearray


【解决方案1】:

声明一个整数变量,如:

int offset;

然后这样做:

for (int i = 0; i<[textArray count]; i++) {



        UITextView *txtview = [[UITextView alloc]initWithFrame:CGRectMake(100,100+offset,320,568)];

        txtview.font = [UIFont fontWithName:@"Helvetica" size:12];


        txtview.text=[textArray objectAtIndex:i];

        [self.view addSubview:txtview];

        offset = offset + 50;
    }

【讨论】:

  • 是否需要 gTag 变量?因为 gTag 变量也用于其他目的。
  • 你添加了偏移量吗?
  • 你最好做一件事,把你的代码发给我,我会为你解决这个问题
  • 你能给你的邮件ID吗
  • d.khiwani92@gmail.com
猜你喜欢
  • 2013-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-09
相关资源
最近更新 更多