#import "AuthorVC.h"
#import "Author.h"
#import <sqlite3.h>
@implementation AuthorVC
@synthesize theauthors;
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if
(self) {
}
return
self;
}
- (
void
)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
#pragma mark - View lifecycle
- (
void
)viewDidLoad
{
[self authorList];
[super viewDidLoad];
}
- (
void
)viewDidUnload
{
[super viewDidUnload];
}
- (
void
)viewWillAppear:(
BOOL
)animated
{
[super viewWillAppear:animated];
}
- (
void
)viewDidAppear:(
BOOL
)animated
{
[super viewDidAppear:animated];
}
- (
void
)viewWillDisappear:(
BOOL
)animated
{
[super viewWillDisappear:animated];
}
- (
void
)viewDidDisappear:(
BOOL
)animated
{
[super viewDidDisappear:animated];
}
- (
BOOL
)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return
(interfaceOrientation == UIInterfaceOrientationPortrait);
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return
1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return
[self.theauthors count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static
NSString *CellIdentifier = @
"AuthorsCell"
;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if
(cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
int
rowCount = indexPath.row;
Author *author = [self.theauthors objectAtIndex:rowCount];
cell.textLabel.text = author.name;
cell.detailTextLabel.text = author.title;
return
cell;
}
-(NSMutableArray *) authorList{
theauthors = [[NSMutableArray alloc] initWithCapacity:10];
@
try
{
NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *dbPath = [[[NSBundle mainBundle] resourcePath ]stringByAppendingPathComponent:@
"AuthorsDb.sqlite"
];
BOOL
success = [fileMgr fileExistsAtPath:dbPath];
if
(!success)
{
NSLog(@
"Cannot locate database file '%@'."
, dbPath);
}
if
(!(sqlite3_open([dbPath UTF8String], &db) == SQLITE_OK))
{
NSLog(@
"An error has occured: %@"
, sqlite3_errmsg(db));
}
const
char
*sql =
"SELECT * FROM books"
;
sqlite3_stmt *sqlStatement;
if
(sqlite3_prepare(db, sql, -1, &sqlStatement, NULL) != SQLITE_OK)
{
NSLog(@
"Problem with prepare statement: %@"
, sqlite3_errmsg(db));
}
else
{
while
(sqlite3_step(sqlStatement)==SQLITE_ROW) {
Author * author = [[Author alloc] init];
author.name = [NSString stringWithUTF8String:(
char
*) sqlite3_column_text(sqlStatement,1)];
author.title = [NSString stringWithUTF8String:(
char
*) sqlite3_column_text(sqlStatement,2)];
author.genre = [NSString stringWithUTF8String:(
char
*) sqlite3_column_text(sqlStatement, 3)];
[theauthors addObject:author];
}
}
}
@
catch
(NSException *exception) {
NSLog(@
"Problem with prepare statement: %@"
, sqlite3_errmsg(db));
}
@finally {
sqlite3_finalize(sqlStatement);
sqlite3_close(db);
return
theauthors;
}
}
@end
Nhận xét
Đăng nhận xét