Как преобразовать значения из NSString в NSInteger

Я новичок в разработке iPhone.

Я хотел бы получить записи из базы данных, используя процедуру, указанную ниже.

Но когда я передал искомое значение searchDbAuthorId1 or searchDbQuoteId методу, он показал сообщение BAD ACCESS.

if(sqlite3_open([self.databasePath UTF8String], &database) == SQLITE_OK) 
    {
        NSString *querySQL = [NSString stringWithFormat:@"select distinct(qot.id), key.Authorid,  key.Keyword, qot.Quotes from Keywords key inner JOIN Quotes qot on key.Authorid=qot.AuthorID where key.Keyword like \'%@\'",dataSearch];
        sqlite3_stmt *compiledStatement;
        const char *query_stmt = [querySQL UTF8String];
        if(sqlite3_prepare_v2(database, query_stmt, -1, &compiledStatement, NULL) == SQLITE_OK)
        {
            while (sqlite3_step(compiledStatement)==SQLITE_ROW)
            {
                NSString *searchDbAuthorId1 =  [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(compiledStatement, 1)];
                NSString *searchDbQuoteId1 =  [[NSString alloc]initWithUTF8String:(const char *) sqlite3_column_text(compiledStatement, 0)];
                NSString *searchDbKeyword1 =  [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(compiledStatement, 2)];
                NSString *searchDbQuote1 =  [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(compiledStatement, 3)];

                terms *Objterm = [[terms alloc] init];
                Objterm->searchDbQuoteId = searchDbQuoteId1;
                Objterm->searchDbAuthorId = searchDbAuthorId1; 
                Objterm->searchDbKeyword = searchDbKeyword1;
                Objterm->searchDbQuote = searchDbQuote1;

                NSLog(@"searchDbQuoteId = %@",Objterm->searchDbQuoteId);
                NSLog(@"searchDbAuthorId = %@",Objterm->searchDbAuthorId);
                NSLog(@"searchDbKeyword= %@",Objterm->searchDbKeyword);
                NSLog(@"searchDbQuote= %@",Objterm->searchDbQuote);

                NSLog(@"searchDbQuoteId = %d",Objterm->searchDbQuoteId);
                NSLog(@"searchDbAuthorId = %d",Objterm->searchDbAuthorId);

Я использовал NSLOG, чтобы узнать фактические значения.

Ниже приведены значения с %@

Это правильные значения, которые мне нужны

2011-12-12 23:03:50.612 Quotes[1039:207] searchDbQuoteId = 15
2011-12-12 23:03:50.988 Quotes[1039:207] searchDbAuthorId = 6

и значения с %d

и я получаю эти значения

2011-12-12 23:03:52.332 Quotes[1039:207] searchDbQuoteId = 109590272
2011-12-12 23:03:53.580 Quotes[1039:207] searchDbAuthorId = 109607456

Заранее спасибо.


person Sohail    schedule 12.12.2011    source источник


Ответы (2)


Ваш вопрос на самом деле не имеет для меня смысла, нам нужно больше информации, но я вижу, что вы уже отследили проблему. Итак, отвечая на ваш заголовок:

Как преобразовать значения из Nsstring в NSinteger

Вы можете использовать -integerValue метода NSString.

NSInteger integer = [string integerValue];
person sidyll    schedule 12.12.2011

NSInteger myInt = [myString intValue]; — это ответ на заголовок вашего вопроса. Содержание вопросов, однако, не очень ясно, и я не уверен в том, что вы спрашиваете.

person Gabriel    schedule 12.12.2011