文件中没有任何内容,但我之后将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];
}
请帮忙!
提前致谢,
马特
答案 0 :(得分:1)
我看到两种可能性:
包含此代码的对象未正确设置为表的数据源。
您正在查看的路径中存在一个文件,但其内容无法解析为数组。在这种情况下,您将点击if子句的第一个分支,但initWithContentsOfFile:
将返回nil。您可以通过在调用该方法后检查nil来轻松诊断这一点。
答案 1 :(得分:0)
确保正确设置tableview委托和数据源
答案 2 :(得分:0)
很难回答你的问题。以下是两条建议:
在此处发布代码时,请将其清理干净。删除评论并很好地格式化。
显示所有代码。在你的代码中可能有很多错误。也许self.tasks属性不正确。也许你没有正确设置数据视图。也许你没有实现正确的表视图委托方法。这很难说。
另外,尽量排除最基本的东西。例如,如果您怀疑该阵列是否设置正确,那么只需打印它:
NSLog(@"The contents of the array is %@", array);