// 1. 確認資料庫打開
if (![_dataBase open]) {
NSLog(@"DB open failed: %@", [_dataBase lastErrorMessage]);
return;
}
// 2. 執行查詢並檢查錯誤
FMResultSet *set = [_dataBase executeQuery:@"SELECT * FROM News"];
if (!set) {
NSLog(@"Query failed: %@", [_dataBase lastErrorMessage]);
return;
}
// 3. 遍歷並列印原始欄位名驗證
while ([set next]) {
NSLog(@"Columns: %@", [set columnNames]); // 列印所有欄位名
NewsItem *item = [[NewsItem alloc] init];
item.newsTitle = [set stringForColumn:@"title"]; // 必須與 columnNames 完全一致
item.newsImageUrl = [set stringForColumn:@"imageUrl"];
[_dataArray addObject:item];
}
按「連線→SQL→映射」三步驗證,可快速定位 FMDB 查無資料的根因。