Проблема с возвращаемым значением после запроса в базе данных Sqlite - PullRequest
0 голосов
/ 21 июня 2011

В моем приложении я выполняю запрос, чтобы получить количество изображений, которые имеют ту же категорию, и эта категория передается мной в качестве параметра.Теперь, когда запрос выполнен, я хочу получить два результата: 1 или более одного.Для этого я думаю, что мне нужно преобразовать строку в целое число.Когда я проверяю значение String, оно показывает мне 1, но когда это значение возвращается методу, оно показывает что-то вроде этого: 695842 и что-то еще.Что может быть причиной?Пожалуйста помоги.Я публикую часть кода: -

-(NSInteger)searchImagesInSameCategory:(NSString *)categoryName
{

    NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory= [paths objectAtIndex:0];

    NSString *path=[documentsDirectory stringByAppendingPathComponent:@"SymbolTalkLanguageElement.sqlite"];


    //Open the database
    //might have to make database as property
    if(sqlite3_open([path UTF8String], &dataBase) ==SQLITE_OK)
    {



        sqlite3_stmt *statement;

        NSString *strSQL = [[NSString alloc]init];


        strSQL = @"select Count(ImageName) from tblLanguageElement where Category='";

        strSQL = [[strSQL stringByAppendingString:categoryName] stringByAppendingString:@"'"];


        const char *bar = [strSQL UTF8String]; 


        if(sqlite3_prepare(dataBase, bar, -1, &statement, NULL) == SQLITE_OK)
        {

            while (sqlite3_step(statement) == SQLITE_ROW) 
            {

                NSLog(@"%@",[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)]);

                int k;

                //NSString *string=[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)];

                //NSLog(string);

                k=[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)];

                //NSLog([NSString stringWithFormat:@"Count for k:-%d",k]);

                //[list addObject:[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)]];

                //return [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)];

                return k;
            }

        }



    }
    return 1;

}

1 Ответ

1 голос
/ 21 июня 2011

Вы должны использовать intValue метод для преобразования NSString в int.

NSString *integerStr = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)];
k = [integerStr intValue];
...