将对象添加到从文件读取的数组中

时间:2009-07-16 02:19:46

标签: objective-c cocoa

文件中没有任何内容,但我之后将row1添加到我的数组中。 NSLog告诉我数组是空的。为什么没有将row1添加到数组中?据我所知,我的所有其他代码都很好。当我将硬值放入数组时,我的应用程序工作。现在我正在从文件加载,它不起作用。

- (void)viewDidLoad {
//array value

//NSMutableArray *array;

NSString *filePath = [self dataFilePath];
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath])
{
NSMutableArray *array/*array*/ = [[NSMutableArray alloc] initWithContentsOfFile:filePath];

NSDictionary *row1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"Study", @"Task", @"2 hours", @"Length", @"4", @"Hours", @"0", @"Minutes", @"15", @"Tiredness", nil];
[array addObject: row1];
self.tasks = array;

NSLog(@"The contents of the array (file exists) is %@", array);

[array release];
[myTableView reloadData];
}

UIApplication *app = [UIApplication sharedApplication];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(applicationWillTerminate:)
                                             name:UIApplicationWillTerminateNotification 
                                           object:app];
[super viewDidLoad];
}

请帮忙!

提前致谢,

马特

3 个答案:

答案 0 :(得分:1)

我看到两种可能性:

  1. 包含此代码的对象未正确设置为表的数据源。

  2. 您正在查看的路径中存在一个文件,但其内容无法解析为数组。在这种情况下,您将点击if子句的第一个分支,但initWithContentsOfFile:将返回nil。您可以通过在调用该方法后检查nil来轻松诊断这一点。

答案 1 :(得分:0)

确保正确设置tableview委托和数据源

答案 2 :(得分:0)

很难回答你的问题。以下是两条建议:

在此处发布代码时,请将其清理干净。删除评论并很好地格式化。

显示所有代码。在你的代码中可能有很多错误。也许self.tasks属性不正确。也许你没有正确设置数据视图。也许你没有实现正确的表视图委托方法。这很难说。

另外,尽量排除最基本的东西。例如,如果您怀疑该阵列是否设置正确,那么只需打印它:

NSLog(@"The contents of the array is %@", array);