これが私のコードです:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory error:nil];
NSMutableArray *finalArray = [(NSArray*)filePathsArray mutableCopy];
NSFileManager *fm = [NSFileManager defaultManager];
NSArray *files = [fm contentsOfDirectoryAtPath:documentsDirectory error:nil];
NSString *fileFirst = [files objectAtIndex:0];
NSString *fullPath = [NSString stringWithFormat:@"%@/%@", documentsDirectory, fileFirst];
/* NSUInteger index = [finalArray indexOfObject:@".DS_Store"];
[finalArray removeObjectAtIndex: index]; */
//NSLog(@"files array %@", finalArray);
NSString *title = [[[finalArray objectAtIndex:indexPath.row] lastPathComponent]stringByDeletingPathExtension];
NSString *image = [[finalArray objectAtIndex:indexPath.row] lastPathComponent];
NSString *newimage = [[image pathExtension]stringByAppendingPathExtension:@"png"];
//NSLog(@"%@",newimage);
if (![UIImage imageNamed:newimage]) {
newimage = @"notFound.png";
}
NSDictionary *fileAttribs = [[NSFileManager defaultManager] attributesOfItemAtPath:fullPath error:nil];
////NSLog(@"Here: %@",fileAttribs);
//long long fileSize = [fileAttribs fileSize];
NSDate *result = [fileAttribs valueForKey:NSFileCreationDate]; //or NSFileModificationDate
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterLongStyle];
NSString *dateString = [dateFormatter stringFromDate:result];
[dateFormatter setDateStyle:NSDateFormatterNoStyle];
cell.textLabel.text = title;
cell.imageView.image = [UIImage imageNamed:newimage];
//cell.detailTextLabel.text = [NSString stringWithFormat:@"File extenstion: %@",[[image pathExtension]uppercaseString]];
cell.detailTextLabel.text = dateString;
cell.detailTextLabel.font = [UIFont systemFontOfSize:15];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
上記のように、ユーザーの Documents フォルダー内のファイルの拡張子を取得し、その拡張子を持つ画像を見つけます。これは機能します - 文字列を NSLog すると正しい画像 (たとえば PDF.png) が得られます。ただし、画像が見つからない場合は、newimage 変数を notFound.png にします。
これはシミュレーターでは機能しますが、デバイスでテストするときは機能しません。デバイスでは、セル NSLogs PDF.png (たとえば) であっても、cell.imageView.image のすべてが notFound.png として表示されます。誰が問題が何であるかについて何か考えがありますか? ありがとう。