objective-c - 从 iPhone 应用程序的数据库中读取 FMDB

标签 objective-c ios fmdb

我正在使用以下代码从客户表中读取记录。由于某种原因,返回的结果集总是空的。

    -(NSMutableArray *) getCustomers
{
    NSMutableArray *customers = [[NSMutableArray alloc] init];

    NSString *databaseName = @"Customers.db";

    NSArray *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDir = [documentsPath objectAtIndex:0];

    NSString *databasePath = [documentsDir stringByAppendingPathComponent:databaseName];

    FMDatabase *db = [FMDatabase databaseWithPath:databasePath];

    if(![db open]) 
    {
        return nil; 
    }

    FMResultSet *results = [db executeQuery:@"SELECT * FROM customers"];

    while([results next]) 
    {
        Customer *customer = [[Customer alloc] init];


        customer.firstName = [results stringForColumn:@"firstname"];
        customer.lastName = [results stringForColumn:@"lastname"];

        [customers addObject:customer];

    }

    [db close];

    return customers; 


}

我多次检查数据库,它显示了数据,但出于某种原因,FMDB 无法检索它!

最佳答案

将 db log errors 设置为 true,这将显示您登录到可以找到问题的控制台。

FMDatabase *db = [FMDatabase databaseWithPath:databasePath];
db.logsErrors = YES;

关于objective-c - 从 iPhone 应用程序的数据库中读取 FMDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7879841/

相关文章:

ios - 使用 UIKit Dynamics 动画自动布局支持 View

ios - GPUImage 在 iOS 上未通过 CVPixelBufferGetPlaneCount 检查

ios - plist 文件会不会太大?

ios - 在 ViewController Swift 3 中添加 UITabBar(不实现 UITabBarController)

objective-c - 正确使用FMDB/内存

ios - 在另一个类 objective-c 中保存一个类的实例

ios - 不同 View Controller 中的 NSFetchedResultsController 相互更新?

javascript - iPhone native 应用程序与 webkit 和 PhoneGap 之间的区别?

ios - 在 mask 层之上询问 CATextLayer

ios - 使用 FMDB for SQLite 库如何像 Core Data 的 controllerDidChangeContent 一样自动更新 TableView