从 plist 字符串中读取 url 图像

Posted

技术标签:

【中文标题】从 plist 字符串中读取 url 图像【英文标题】:Reading url image from plist string 【发布时间】:2012-04-28 10:59:27 【问题描述】:

我有一个带字典的 plist。 在字典中,我有一个名为“cellPic”的字符串,其中包含图像的 url 地址。 我正在尝试使用我放在我的保管箱帐户中的图像填充我的表格视图并通过 plist 字符串读取它们。 (“arrayFromPlist”是我的数组) 问题是,当我运行它时,控制台中出现错误: [__NSCFDictionary objectAtIndex:]:无法识别的选择器

这是我的代码:

-(void) readPlistFromDocs

    // Path to the plist (in the Docs)
    NSString *rootPath =
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
    NSString *plistPath = [rootPath stringByAppendingPathComponent:@"Data.plist"];
    NSLog(@"plistPath = %@",plistPath);
    // Build the array from the plist  
    NSMutableArray *arrayFromDocs = [[NSMutableArray alloc] initWithContentsOfFile:plistPath];
if (arrayFromDocs)

    NSLog(@"\n content of plist file from the documents \n");
    NSLog(@"Array from Docs count = : %d", [arrayFromDocs count]);

    arrayFromPlist = [[NSArray alloc] initWithArray:arrayFromDocs];
   

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

    return 1;


// Returns the number of rows in a given section.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

    return [arrayFromPlist count];
    NSLog(@"Array SIZE = %d",[arrayFromPlist count]);


- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];


NSURL *url = [[NSURL alloc] initWithString:[[arrayFromPlist objectAtIndex:indexPath.row] objectForKey:@"cellPic"]];
NSData *urlData = [[NSData alloc] initWithContentsOfURL:url];
[[cell imageView] setImage:[UIImage imageWithData:urlData]];

return cell;

我的另一个问题是 - 当我从 plist 字符串中读取 url 时,如何异步加载图像? 我试图找到一个例子,但我发现只有异步没有 uisng plist。 谢谢。

【问题讨论】:

【参考方案1】:

更改后续行

NSDictionary *arrayFromDocs = [[NSDictionary alloc] initWithContentsOfFile:plistPath];

Best Tutorial for load the images asynchronous

希望对你有所帮助..

【讨论】:

以上是关于从 plist 字符串中读取 url 图像的主要内容,如果未能解决你的问题,请参考以下文章

shell 脚本 (macOS):从 plist 字符串中打印转义的 Unicode 字符

从 Info.plist 读取版本

Java - 从 url 读取页面源返回未知字符

从 iOS 的 UITests 中读取 Info.plist?

编辑 plist 文件(目标 c)

如何读取 plist 中的响应字符串?