首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载UITableView时出现问题

问加载UITableView时出现问题
EN

Stack Overflow用户
提问于 2011-04-27 21:04:03
回答 1查看 152关注 0票数 0

嗨,我在使用SQLite加载UITableView时遇到了问题。我有这个代码!

DataBase结构:

代码语言:javascript
复制
modelID integer PK autoincrement
model varchar
avaliable int
image1 blob
image2 blob
image3 blob

.H

代码语言:javascript
复制
#import <UIKit/UIKit.h>
@interface DBModel : NSObject {
     NSNumber *modelID;
        NSString *model;
     NSNumber *avaliable;
}

@property (nonatomic, retain) NSNumbe *modelID;
@property (nonatomic, retain) NSString *model;
@property (nonatomic, retain) NSNumbe *avaliable;

-(id)initWithName:(NSString *)n modelID:(NSInteger *)mid avaliable:(NSNumber *)aval;

@end

.M

代码语言:javascript
复制
#import "DBModel.h"

@implementation DBModel
@synthesize modelID, model, avaliable;

-(id)initWithName:(NSString *)n modelID:(NSInteger *)mid avaliable:(NSInteger *)aval {
     self.name = n;
     self.modelID= mid;
     self.avaliable= aval ;
     return self;
}
@end

AppDelegate我有这个函数:

代码语言:javascript
复制
-(void) readModeDatabase {

     sqlite3 *database;
     aryModel = [[NSMutableArray alloc] init];
     if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
          const char *sqlStatement = "select * from models";

          sqlite3_stmt *compiledStatement;
          if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {

               while(sqlite3_step(compiledStatement) == SQLITE_ROW) {

                    NSInteger *aModelID = sqlite3_column_int(compiledStatement, 1);

NSString *aModel = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];                     NSInteger *aAvaliable = sqlite3_column_int(compiledStatement, 3);
                                //Here I need load on image  in my DBModel.

                    // Create a new animal object with the data from the database
                    DBModel *model = [[DBModel alloc] initWithName:aMode modelID:aModelID avaliable:aAvaliable];

                    [aryModel addObject:model];

                    [model  release];
               }
          }
          sqlite3_finalize(compiledStatement);

     }
     sqlite3_close(database);
}

事件cellForRowAtIndexPath

代码语言:javascript
复制
// Set up the cell
DBModelAppDelegate *appDelegate = (DBModelAppDelegate *)[[UIApplication sharedApplication] delegate];
DBModel *models = (DBModel *)[appDelegate.aryModel objectAtIndex:indexPath.row];
cell.textLabel.text = models.model;
cell.detailTextLabel.text = [models.avaliable stringValue];

return cell;

我的问题是:

我遇到了一个问题,从数据库中带了一个整数值,​​,​​来玩,他们总是带零,而数据库中有列的值。

当我尝试上传一个使用字幕样式的UITableView并播放从数据库中获得的myvariable的值时,它没有添加任何内容,也没有添加任何格式,带来了一个format。

我想做以下几件事:

根据我上面提到的数据库结构,我填写了一个详细的UITableView,其中包含图像、标题和说明(如果可能,则根据值填写图片说明或星号),然后通过单击调用详细信息在线完成。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-04-28 12:55:53

我相信你在readModeDatabase函数上有问题。虽然从数据库中读取记录的列引用从0开始(与从1开始的存储/更新相比,这很奇怪),但上面的行读取1,所以它实际上是从数据库读取第二列,而不是从数据库读取first.So来从数据库读取modelID,根据您的数据库结构,您应该这样读它

代码语言:javascript
复制
 NSInteger aModelID = sqlite3_column_int(compiledStatement, 0);

此外,NSInteger只是长整型的同义词,而NSNumber是objective c类。因此,NSInteger的指针不应该是(NSInteger *)。欲了解更多信息,请访问http://iosdevelopertips.com/cocoa/nsnumber-and-nsinteger.html

并根据需要在班级中的所有地方和其他地方进行更正。

代码语言:javascript
复制
(NSInteger *) to (NSInteger)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5804557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档