저는 사람들에 대한 간단한 기억 방법 중 하나 인 첫 번째 iPhone 앱 중 하나를 쓰고 있습니다. 나는 "Document-Based App Programming Guide for iOS"이라는 iOS 문서를 따르고 있으며 로컬 장치와 iCloud를 쿼리하여 문서를 탐지하고로드하는 지점에 도달했습니다. 이 가이드에서는 사용자 정의 클래스를 사용하며 클래스의 코드를 표시하지 않으므로 코드가 어떻게 보이는지 혼동합니다.Document Based iPhone App Guide에 혼란 스럽습니다.
예제 응용 프로그램이 이제 사용자 정의 모델 응용 프로그램의 각 문서의 이름과 파일 URL을 캡슐화 객체의 배열 (_fileList)가 있습니다 : 그들은 사용자 정의 클래스 "FileRepresentation"의 설명을 제공합니다. (FileRepresentation는 의 사용자 정의 클래스 그 객체입니다.)
사람이 무엇을 "FileRepresentation"의 클래스 구현과 같을 것이다의 예를 들어 주실 수 있습니까?
4-4
목록 4-3-(void)viewDidLoad {
[super viewDidLoad];
// set up Add and Edit navigation items here....
if (self.documentsInCloud) {
_query = [[NSMetadataQuery alloc] init];
[_query setSearchScopes:[NSArray arrayWithObjects:NSMetadataQueryUbiquitousDocumentsScope, nil]];
[_query setPredicate:[NSPredicate predicateWithFormat:@"%K LIKE '*.txt'", NSMetadataItemFSNameKey]];
NSNotificationCenter* notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter addObserver:self selector:@selector(fileListReceived)
name:NSMetadataQueryDidFinishGatheringNotification object:nil];
[notificationCenter addObserver:self selector:@selector(fileListReceived)
name:NSMetadataQueryDidUpdateNotification object:nil];
[_query startQuery];
} else {
NSArray* localDocuments = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:
[self.documentsDir path] error:nil];
for (NSString* document in localDocuments) {
[_fileList addObject:[[[FileRepresentation alloc] initWithFileName:[document lastPathComponent]
url:[NSURL fileURLWithPath:[[self.documentsDir path]
stringByAppendingPathComponent:document]]] autorelease]];
}
}
}
목록 :
부품 페이지 "Managing the Lifecycle of a Document"4-3 및 4-4 목록된다
-(void)fileListReceived {
NSString* selectedFileName=nil;
NSInteger newSelectionRow = [self.tableView indexPathForSelectedRow].row;
if (newSelectionRow != NSNotFound) {
selectedFileName = [[_fileList objectAtIndex:newSelectionRow] fileName];
}
[_fileList removeAllObjects];
NSArray* queryResults = [_query results];
for (NSMetadataItem* result in queryResults) {
NSString* fileName = [result valueForAttribute:NSMetadataItemFSNameKey];
if (selectedFileName && [selectedFileName isEqualToString:fileName]) {
newSelectionRow = [_fileList count];
}
[_fileList addObject:[[[FileRepresentation alloc] initWithFileName:fileName
url:[result valueForAttribute:NSMetadataItemURLKey]] autorelease]];
}
[self.tableView reloadData];
if (newSelectionRow != NSNotFound) {
NSIndexPath* selectionPath = [NSIndexPath indexPathForRow:newSelectionRow inSection:0];
[self.tableView selectRowAtIndexPath:selectionPath animated:NO scrollPosition:UITableViewScrollPositionNone];
}
}
아마도 애플의 최악의 문서 중 하나 일 것입니다. – zaph