Это приложение для IOS4.2 для iPhone. Вот код для доступа и отображения результатов сортировки базы данных. Цель состоит в том, чтобы использовать базу данных для сортировки делегатов по событию и состоянию, а затем отображать результаты. Представленные делегаты связаны с веб-сайтом. Опять же, пользователь и приложение НЕ изменяют базу данных, она статична. Я использую редактор SQLite, чтобы вносить изменения и импортировать их обратно в единую таблицу базы данных. Мне просто нужно перезагрузить таблицу при запуске этой части кода.
Мне нужно знать, какой код и куда его вставить для перезагрузки таблицы.
Спасибо за вашу помощь !!!!!
//
// DelegateList.m
// foundingFathers
//
// Создано __ 6/23/10.
// Авторское право 2010 MyCompanyName . Все права защищены.
//
import "DelegateList.h"
статический sqlite3 * база данных = ноль;
@ реализация DelegateList
@ synthesize tableView;
- (Недействительными) viewDidLoad
{
nameArray = [[NSMutableArray alloc] init];
stateArray = [[NSMutableArray alloc] init];
yearsArray = [[NSMutableArray alloc] init];
contArray = [[NSMutableArray alloc] init];
indArray = [[NSMutableArray alloc] init];
confArray = [[NSMutableArray alloc] init];
constArray = [[NSMutableArray alloc] init];
urlArray = [[NSMutableArray alloc] init];
stateNameArray = [[NSMutableArray alloc] init];
eventNameArray = [[NSMutableArray alloc] init];
[self loadStateData];
[self loadEventData];
// Setup some globals
databaseName = @"mydb.db";
// Get the path to the documents directory and append the databaseName
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
databasePath = [documentsDir stringByAppendingPathComponent:databaseName];
// Execute the "checkAndCreateDatabase" function
[self checkAndCreateDatabase];
// Query the database for all delegates
[self loadDataWithState:@"" andEvent:0];
}
- (Недействительными) loadStateData
{
[stateNameArray addObject:@"All States"];
[stateNameArray addObject:@"Connecticut"];
[stateNameArray addObject:@"Delaware"];
[stateNameArray addObject:@"Georgia"];
[stateNameArray addObject:@"Maryland"];
[stateNameArray addObject:@"Massachusetts"];
[stateNameArray addObject:@"New Hampshire"];
[stateNameArray addObject:@"New Jersey"];
[stateNameArray addObject:@"New York"];
[stateNameArray addObject:@"North Carolina"];
[stateNameArray addObject:@"Pennsylvania"];
[stateNameArray addObject:@"Rhode Island"];
[stateNameArray addObject:@"South Carolina"];
[stateNameArray addObject:@"Virginia"];
}
- (Недействительными) loadEventData
{
[eventNameArray addObject:@"All Events"];
[eventNameArray addObject:@"Continental Association"];
[eventNameArray addObject:@"Declaration of Independence"];
[eventNameArray addObject:@"Confederation of States"];
[eventNameArray addObject:@"US Constitution"];
}
- (IBAction) nextPressed: (идентификатор) отправителя
{
[self.navigationController pushViewController:nondelegateList animated:YES];
}
- (IBAction) menuPressed: (идентификатор) отправителя
{
[self.navigationController popToViewController:mainmenu animated:YES];
}
/ *
- (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation
{
switch (interfaceOrientation) {
case UIInterfaceOrientationPortrait:
case UIInterfaceOrientationPortraitUpsideDown:
return NO;
break;
default:
return YES;
break;
}
} * /
}
- (UITableViewCell *) tableView: (UITableView *) tblView cellForRowAtIndexPath: (NSIndexPath *) indexPath {
static NSString *MyIdentifier = @"MyIdentifier";
MyIdentifier = @"tblViewCell";
TableViewCell *cell = (TableViewCell *)[tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if(cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"TableCellView" owner:self options:nil];
cell = tblCell;
}
UILabel* lbl;
if (indexPath.row == 0) //table Headers
{
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
lbl = (UILabel *)[cell viewWithTag:1];
[lbl setFont:[UIFont boldSystemFontOfSize:14]];
lbl.text = @"Name";
[lbl setTextAlignment:UITextAlignmentLeft];
lbl = (UILabel *)[cell viewWithTag:2];
[lbl setFont:[UIFont boldSystemFontOfSize:14]];
lbl.text = @"State";
[lbl setTextAlignment:UITextAlignmentLeft];
} else {
//[lbl setFont:[[lbl font] fontWithSize:9]];
[cell setSelectionStyle:UITableViewCellSelectionStyleBlue];
lbl = (UILabel *)[cell viewWithTag:1];
[lbl setTextAlignment:UITextAlignmentLeft];
[lbl setFont:[UIFont systemFontOfSize:14]];
lbl.text = [nameArray objectAtIndex:indexPath.row-1];
lbl = (UILabel *)[cell viewWithTag:2];
[lbl setTextAlignment:UITextAlignmentLeft];
[lbl setFont:[UIFont systemFontOfSize:14]];
lbl.text = [stateArray objectAtIndex:indexPath.row-1];
}
return cell;
}
- (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath
{
if (indexPath.row == 0) {
return;
}
NSURL* page = [NSURL URLWithString:[urlArray objectAtIndex:indexPath.row - 1] ];
NSURLRequest* pageRequest = [NSURLRequest requestWithURL:page];
[webTitle setTitle:[nameArray objectAtIndex:indexPath.row - 1]];
[web loadRequest:pageRequest];
[self.navigationController pushViewController:webView animated:YES];
}
- (void) checkAndCreateDatabase {
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
success = [fileManager fileExistsAtPath:databasePath];
if(success) return;
NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:databaseName];
[fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:nil];
//[fileManager release];
}
- (void) loadDataWithState: (NSString *) stateSearch иEvent: (int) eventSearch
{
BOOL hasEvent = (BOOL)eventSearch;
BOOL hasState = !([stateSearch isEqualToString:@"All States"] || stateSearch.length <=0);
NSString* state = stateSearch;
NSString* event = nil;
switch (eventSearch) {
case 1:
event = @"continental";
break;
case 2:
event = @"declaration";
break;
case 3:
event = @"confederation";
break;
case 4:
event = @"constitution";
break;
default:
break;
}
// Open the database from the users filessytem
if(database || sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
// Setup the SQL Statement and compile it for faster access
NSString* sqlString = nil;
const char *sqlStatement;
if (hasEvent && hasState) {
sqlString = [[[[@"select * from founding_fathers where "stringByAppendingString:event] stringByAppendingString:@" like 'X%%' and State like '"] stringByAppendingString:state] stringByAppendingString:@"'"];
}
if (hasEvent && !hasState) {
sqlString = [[@"select * from founding_fathers where " stringByAppendingString:event] stringByAppendingString:@" like 'X%%'"];
}
if (!hasEvent && hasState) {
sqlString = [[@"select * from founding_fathers where state = '" stringByAppendingString:state] stringByAppendingString:@"'"];
}
if (!hasEvent && !hasState) {
sqlString= @"select * from founding_fathers";
}
unsigned int lengthOfMessage = [sqlString length];
char temp[lengthOfMessage + 1];
strcpy(temp, [sqlString cString]);
sqlStatement = temp;
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
// Loop through the results and add them to the feeds array
[nameArray removeAllObjects];
[stateArray removeAllObjects];
[yearsArray removeAllObjects];
[contArray removeAllObjects];
[indArray removeAllObjects];
[confArray removeAllObjects];
[constArray removeAllObjects];
[urlArray removeAllObjects];
while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
// Read the data from the result row
NSString* dName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)];
NSString* dState = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];
NSString* dYears = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 3)];
NSString* dCont = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 4)];
NSString* dInd = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 5)];
NSString* dConf = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 6)];
NSString* dConst = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 7)];
NSString* dUrl = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 8)];
[nameArray addObject:dName];
[stateArray addObject:dState];
[yearsArray addObject:dYears];
[contArray addObject:dCont];
[indArray addObject:dInd];
[confArray addObject:dConf];
[constArray addObject:dConst];
[urlArray addObject:dUrl];
}
}
// Release the compiled statement from memory
sqlite3_finalize(compiledStatement);
}
}
- (Недействительными) viewDidUnload
{
sqlite3_close(database);
}
- (IBAction) stateSearch: (идентификатор) отправителя
{
pickerArray = stateNameArray;
[picker reloadAllComponents];
[picker setHidden:NO];
[doneButton setHidden:NO];
}
- (IBAction) eventSearch: (идентификатор) отправителя
{
pickerArray = eventNameArray;
[picker reloadAllComponents];
[picker setHidden:NO];
[doneButton setHidden:NO];
}
- (NSInteger) pickerView: (UIPickerView *) pickerView numberOfRowsInComponent: (NSInteger) компонент
{
return [pickerArray count];
}
- (NSInteger) numberOfComponentsInPickerView: (UIPickerView *) pickerView
{
return 1;
}
- (NSString *) pickerView: (UIPickerView *) pickerView titleForRow: (NSInteger) строка для компонента: (NSInteger) компонент
{
return [pickerArray objectAtIndex:row];
}
- (void) pickerView: (UIPickerView *) pickerView didSelectRow: (NSInteger) строка inComponent: (NSInteger) компонент
{
}
- (void) doneClicked: (id) отправитель
{
if (pickerArray == stateNameArray)
{
stateSearchChoice = [stateNameArray objectAtIndex:[picker selectedRowInComponent:0]];
[stateButton setTitle:stateSearchChoice];
}
if (pickerArray == eventNameArray) {
eventSearchChoice = [picker selectedRowInComponent:0];
[eventButton setTitle:[eventNameArray objectAtIndex:[picker selectedRowInComponent:0]]];
}
[picker setHidden:YES];
[doneButton setHidden:YES];
[self loadDataWithState:stateSearchChoice andEvent:eventSearchChoice];
[tableView reloadData];
}
@ конец