【问题标题】:Reading a Text file in xcode在 xcode 中读取文本文件
【发布时间】:2012-07-07 01:35:50
【问题描述】:

首先,我是一个完整的初学者。

这可能是一个愚蠢的问题,但在这里:

我目前正在开发一个应用程序,该应用程序包含用户可以查看和阅读的拉丁文本。 我将 Xcode 4 与 storybord 功能一起使用。 应用程序的构建方式:用户选择作者 - 然后是书 - 然后应用程序显示文本。

我有点困惑,因为我需要有各种文本文件,这取决于用户的选择。

【问题讨论】:

  • 您要将文件存储在哪里?它们会在数据库中(即核心数据)还是作为资源嵌入?
  • 我正在考虑作为核心数据放置(除非其他东西更容易处理
  • 即使是完全的初学者也知道什么是问题。 `I'm thinking of X' 不是问题。

标签: iphone xcode memory inheritance text


【解决方案1】:

正如我所做的或所做的那样,通常只是将文件作为资源嵌入,并使用下面的代码读出文件

在.h文件中

-(NSString *)readFile:(NSString *)fileName;

在 .m 文件中

-(NSString *)readFile:(NSString *)fileName

{
    NSLog(@"readFile");

    NSString *appFile = fileName;    
    NSFileManager *fileManager=[NSFileManager defaultManager];
    if ([fileManager fileExistsAtPath:appFile])        
    {
        NSError *error= NULL;
        NSString *resultData = [NSString stringWithContentsOfFile: appFile encoding: NSUTF8StringEncoding error: &error]; 
        if (error == NULL)            
            return resultData;
    }
    return NULL;
}

希望对你有帮助

享受编码:)

编辑

我所做的是根据一键单击日期更改以及viewWillApper时调用下面的函数

-(void)dateAndContentReload
{
    NSLog(@"dateAndContentReload");

    NSLog(@"Appdelegate Date: %@",appDelegate.dateSelected);
    self.currentDate = appDelegate.dateSelected;
    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd MMMM yyyy"];
    NSString *dateString = [dateFormatter stringFromDate: appDelegate.dateSelected];

    self.navigationItem.title = dateString; 
    [dateFormatter setDateFormat: @"Myyyy"];
    NSString *dateComp = [dateFormatter stringFromDate: appDelegate.dateSelected];
    //NSLog(@"date : %@",dateString);
    NSString *data;
    NSString *path;

    if(![dateComp isEqualToString: @"12012"])
    {
        NSString *size = [NSString stringWithFormat: @"%f",appDelegate.size]  ; 
        NSLog(@"dateAndContentReload size: %f",appDelegate.size);

        data = @"<html><body><font size='";
        data = [data stringByAppendingString: size];
        data = [data stringByAppendingString: @"'><P>"];

        data = @"Data not Available for Current Date.";

        data = [data stringByReplacingOccurrencesOfString: @"\n" withString:@"<br>"];

        data = [data stringByAppendingString:@"</P></font></body></html>"];
    }
    else
    {
        [dateFormatter setDateFormat:@"MMMMd"];
        dateString = [dateFormatter stringFromDate: appDelegate.dateSelected];
        [dateFormatter release];
        NSLog(@"new Format: %@",dateString);

        path = [[NSBundle mainBundle] pathForResource: dateString ofType: @"txt"];
        data = nil;
        NSString *size = [NSString stringWithFormat: @"%f",appDelegate.size]  ; 
        NSLog(@"dateAndContentReload size: %f",appDelegate.size);

        data = @"<html><body><font size='";
        data = [data stringByAppendingString: size];
        data = [data stringByAppendingString: @"'><P>"];

        data = [data stringByAppendingString: [self readFile: path]];

        data = [data stringByReplacingOccurrencesOfString: @"\n" withString:@"<br>"];

        data = [data stringByAppendingString:@"</P></font></body></html>"];
    }

    [self.currentView loadHTMLString: data baseURL: nil];
}

基本上我会根据客户的要求读取文件并在UIWebView 中显示。

【讨论】:

  • 那么在哪里输入文件的位置呢?
  • 你想在哪里阅读它,即在按钮点击或加载时或当你想阅读该字段时
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-25
  • 2016-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多