【发布时间】:2015-04-24 15:58:35
【问题描述】:
我对 iOS 编程比较陌生,所以请多多包涵。
我正在创建一个从表格视图调用食谱的应用,然后在详细视图中将测量值和成分作为标签列出。我在 Google 表格中对我的食谱进行了编目,将其下载为 .csv 文件,并使用 SQLiteStudio 填充了一个表格。然后我导出了数据库,并使用 FMDB 将它放入了我的应用程序中。那里一切正常,我可以检索各种字段。
我要做的是列出测量值和成分,以便用换行符显示:
0.5 oz.
1.0 oz.
1 jigger
而不是:0.5 oz., 1.0 oz., 1 jigger,这是我将其写入 Google 文档的方式。
我尝试在 SQLite 查看器中使用\n,但它会将其输出为字符串,而不是将其编码为新行。但是,当我查看随附的 .sql 文件时,TextMate2 将其读取为新行。我不确定是否必须在我调用 FMDB 或其他地方的 tableviewcontroller 实现文件中应用一些代码。
我一直在寻找解决方案一段时间,但没有运气。任何帮助我朝着正确的方向前进将不胜感激。谢谢!
CocktailListTableViewController.m
- (NSMutableArray *)recipeCocktails {
recipeCocktails = [[NSMutableArray alloc] init];
NSString *databasePath = [(AppDelegate *) [[UIApplication sharedApplication] delegate] databasePath];
FMDatabase *fmDB = [FMDatabase databaseWithPath:databasePath];
if(![fmDB open])
{
NSLog(@"Could not open DB, try again");
return nil;
}
FMResultSet *results = nil;
results = [fmDB executeQuery:@"SELECT * FROM recipesCocktails"];
NSLog(@"result %@ ",results);
if ([fmDB hadError]) {
NSLog(@"DB Error %d: %@", [fmDB lastErrorCode], [fmDB lastErrorMessage]);
}
while ([results next]) {
Cocktails *cocktails = [[Cocktails alloc] init];
cocktails.recipeName = [results stringForColumn:@"recipeName"];
cocktails.recipeMeasure = [results stringForColumn:@"recipeMeasure"];
cocktails.recipeIngred = [results stringForColumn:@"recipeIngred"];
cocktails.recipeGlass = [results stringForColumn:@"recipeGlass"];
cocktails.recipeShaker = [results stringForColumn:@"recipeShaker"];
cocktails.recipeDirections = [results stringForColumn:@"recipeDirections"];
[recipeCocktails addObject:cocktails];
}
[fmDB close];
return recipeCocktails;
CocktailsDetailTableViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.title = cocktails.recipeName;
self.recipeIngred.text = cocktails.recipeIngred;
self.recipeMeasure.text = cocktails.recipeMeasure;
【问题讨论】:
-
您的列表显示方式如何?用户标签?在 UITextView 中?
标签: ios objective-c sqlite fmdb