Objective c 从下载的plist重新加载UITableView数据
首先,我对objective-c和ios开发真的相当陌生 我有一个.plist,它是从internet下载的,然后用于填充UITableView。我可以在AppDelegate中的ApplicationIDLaunch方法中实现这一点,如下所示Objective c 从下载的plist重新加载UITableView数据,objective-c,ios,xcode,uitableview,plist,Objective C,Ios,Xcode,Uitableview,Plist,首先,我对objective-c和ios开发真的相当陌生 我有一个.plist,它是从internet下载的,然后用于填充UITableView。我可以在AppDelegate中的ApplicationIDLaunch方法中实现这一点,如下所示 NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSString *f
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *finalPath = [path stringByAppendingPathComponent:@"Data.plist"];
NSURL *theFileURL = [NSURL URLWithString:@"http://dl.dropbox.com/u/8068058/Data.plist"];
NSDictionary *replace = [[NSDictionary alloc] initWithContentsOfURL:theFileURL];
if (replace != nil){
[replace writeToFile:finalPath atomically:YES];
}
然后我将其设置为数据路径
NSString *Path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *DataPath = [Path stringByAppendingPathComponent:@"Data.plist"];
NSDictionary *tempDict = [[NSDictionary alloc] initWithContentsOfFile:DataPath];
self.data = tempDict;
[tempDict release];
这很好,然后填充TableView并显示它。如果我向显示表格的NavgationController添加“刷新”按钮。当我按下它并运行相同的下载代码
[self.tableView reloadData];
我一无所获,有人知道如何解决这个问题吗?虽然你已经解决了你的问题,但我应该指出一些最好改变的事情
nsdocuments目录中。如果用户无法在任何时候编辑数据,我强烈建议您将其保存在NSCachesDirectory
中。如果没有,请尝试使用NSLibraryDirectory
。由于iOS5苹果公司不喜欢将下载的数据存储在NSDocumentsDirectory
中
队列中执行网络获取。如果对主队列执行网络抓取,则会阻止该队列。我知道,在这种情况下,这几乎不明显,因为文件大小很小,但如果您的internet连接不好,您会注意到UI是如何被阻止的李>
我指出这些是因为当我开始为iOS开发时,我也遇到了同样的问题。如果您不想了解有关如何执行此操作的更多信息,请随时询问:)您的表视图是否已连接?我有以下表视图代码。self.tableDataSource=tempArray;然后,我有代码为plist将tabeDataSource设置为objectAtKey。表在第一次运行时填充良好,但我无法在应用程序运行时刷新数据我的意思是,您的表视图是否与Storyboard/IB中的控制器等连接?是的,表视图连接到接口生成器中的RootViewController中,但什么都没有得到。您的意思是表视图为空?