Моя пустота add_clicked:
- (void) add_Clicked:(id)sender {
NSURL *url = [[NSURL alloc] initWithString:@"http://sites.google.com/site/iphonesdktutorials/xml/Books.xml"];
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url];
//Initialize the delegate.
XMLParser *parser = [[XMLParser alloc] initXMLParser];
//Set delegate
[xmlParser setDelegate:parser];
//Start parsing the XML file.
BOOL success = [xmlParser parse];
if(success)
NSLog(@"No Errors");
else
NSLog(@"Error Error Error!!!");
[self.tableView reloadData];
}
Внутри моего класса Book у меня есть пустота getInitialDataToDisplay.Я предполагаю, что это где я должен сделать некоторые изменения, или снова вызвать этот метод?Я думаю, что проблема в том, что tableView читает содержимое sqlite только при загрузке приложения.И да, у меня нет абсолютно никакого опыта в программировании, но я немного научился.
+ (void) getInitialDataToDisplay:(NSString *)dbPath {
BooksAppDelegate *appDelegate = (BooksAppDelegate *)[[UIApplication sharedApplication] delegate];
if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK) {
const char *sql = "select bookID, title from books";
sqlite3_stmt *selectstmt;
if(sqlite3_prepare_v2(database, sql, -1, &selectstmt, NULL) == SQLITE_OK) {
while(sqlite3_step(selectstmt) == SQLITE_ROW) {
NSInteger primaryKey = sqlite3_column_int(selectstmt, 0);
Book *bookObj = [[Book alloc] initWithPrimaryKey:primaryKey];
bookObj.title = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 1)];
bookObj.isDirty = NO;
[appDelegate.bookArray addObject:bookObj];
[bookObj release];
}
}
}
else
sqlite3_close(database); //Even though the open call failed, close the database connection to release all the memory.
}