我使用: self performSelector:@selector(loadData)withObject:nil ... 它看起來像只在「loadData」中使用某些命令,但是休息不是。self performSelector:@selector(loadData)withObject:nil - not working
這裏是我的viewDidLoad:
- (void)viewDidLoad
{
[super viewDidLoad];
[mActivity startAnimating];
[self performSelector:@selector(loadData) withObject:nil afterDelay:2];
//[mActivity stopAnimating];
}
這裏是loadData:
-(void)loadData
{
[mActivity startAnimating];
NSLog(@"Start LoadData");
AppDelegate *delegate=(AppDelegate *)[[UIApplication sharedApplication] delegate];
NSString *selectData=[NSString stringWithFormat:@"select * from k_proverb ORDER BY RANDOM()"];
qlite3_stmt *statement;
if(sqlite3_prepare_v2(delegate.db,[selectData UTF8String], -1,&statement,nil)==SQLITE_OK){
NSMutableArray *Alldes_str = [[NSMutableArray alloc] init];
NSMutableArray *Alldes_strAnswer = [[NSMutableArray alloc] init];
while(sqlite3_step(statement)==SQLITE_ROW)
{
NSString *des_strChk= [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement,3)];
if ([des_strChk isEqualToString:@"1"]){
NSString *des_str= [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement,4)];
[Alldes_str addObject:des_str];
}
}
Alldes_array = Alldes_str;
Alldes_arrayAnswer = Alldes_strAnswer;
}else{
NSLog(@"ERROR '%s'",sqlite3_errmsg(delegate.db));
}
listOfItems = [[NSMutableArray alloc] init];
NSDictionary *desc = [NSDictionary dictionaryWithObject:
Alldes_array forKey:@"description"];
[listOfItems addObject:desc];
//[mActivity stopAnimating];
NSLog(@"Finish loaData");}
它給我只能打印2線,但沒有加載我的數據表中,但如果我複製所有的代碼從「loadData」內部和過去的「viewDidLoad」,它將數據加載到表中。
請任何建議或幫助。
您是否嘗試過在loadData方法的第一行調試並設置斷點? – danielbeard
它只能打印2行: NSLog(@「Start LoadData」)和NSLog(@「Finish loaData」) 但如果我複製「loadData」中的所有代碼並傳入「viewDidLoad」 它會顯示給我包含數據的表格 – Sunny