嗨,我在使用SQLite加载UITableView时出现问题。我有这个代码!
DataBase Struct:
modelID integer PK autoincrement
model varchar
avaliable int
image1 blob
image2 blob
image3 blob
·H
#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
#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我有这个功能:
-(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
// 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;
我的问题是:
我遇到问题需要从数据库值NSInteger中获取一个整数值来播放,它们总是带零,而数据库中有值的值。
当我尝试使用字幕样式上传UITableView并播放从数据库中获取的myvariable值时,它不会添加任何内容,也不会添加任何格式,带来一个normalline。
我想做以下事情:
根据我上面提到的数据库结构,我填写了一个详细的UITableView,带有图像,标题和标题(如果可能的话,图片标题或根据值的星标)是需要完成的所有事情并在线完成点击通话详情。
由于
答案 0 :(得分:0)
我相信你在readModeDatabase函数中有问题。从列的数据库引用读取记录从0开始(它与从1开始的存储/更新相比很奇怪),上面的行读取1,所以从数据库读取第二列而不是第一列。因此从数据库中读取modelID您的数据库结构应该像
一样阅读 NSInteger aModelID = sqlite3_column_int(compiledStatement, 0);
此NSInteger的更多内容只是长整数的同义词,NSNumber是目标c类。所以NSInteger不应该有指针(NSInteger *)。有关更多说明,请访问http://iosdevelopertips.com/cocoa/nsnumber-and-nsinteger.html
并根据需要在课堂和其他地方的所有地方纠正相同的问题。
(NSInteger *) to (NSInteger)