2012-03-11 3 views
0

Stanford ios 과정에서이 앱을 다운로드했는데 내 자신의 flickr API 키가 있고 FlickrAPIKey.h에 넣었지만 여전히 빈 사진 작가입니다 tableView. 이 관련 또는하지 않을 경우 잘 모르겠어요,하지만 난 그 로그 메시지를 가지고 :cs193p에서 다운로드 한 Photomania 앱이 비어있는 TableView를 보여줍니다

2012-03-11 09 : 18 : 46.848 Photomania를 [23748은 : 1e03] NSFileCoordinator : 예상치 못한 서버 오류가 신호를했다 . 세부 정보 : 연결이 잘못되었습니다.

답변

1

@litov 예, 실제로 이렇게 할 수 있습니다. 이와 같은 상황에서 나는 iPhone/iPad 또는 시뮬레이터를 실행하면 데이터베이스 파일도 삭제됩니다.

+0

예, 나는 배웠습니다. w. tnx – litov

2

문제점을 발견했습니다. 다른 사람들이 그 문제에 직면 한 경우, 여기에 해결책이 있습니다 (제 경우) : 앱이 파일이 아직 만들어지지 않은 경우에만 데이터를 다운로드하므로 처음 실행했을 때 아직 flickr 키를 넣지 않았습니다. 그래서 데이터가없는 파일을 만들었습니다. 나는 키를 다시 응용 프로그램을 실행하면 이미 데이터가없는 (파일을했기 때문에, 그것은 플리커에서 데이터를 다운로드하지 않습니다. 여기에

난 후 PhotographersTableViewControler.m에

- (void)useDocument 
{ 
    if (![[NSFileManager defaultManager] fileExistsAtPath:[self.photoDatabase.fileURL path]]) { 
     // does not exist on disk, so create it 
     [self.photoDatabase saveToURL:self.photoDatabase.fileURL forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success) { 
      [self setupFetchedResultsController]; 
      [self fetchFlickrDataIntoDocument:self.photoDatabase]; 

     }]; 
    } else if (self.photoDatabase.documentState == UIDocumentStateClosed) { 
     // exists on disk, but we need to open it 
     [self.photoDatabase openWithCompletionHandler:^(BOOL success) { 
      [self setupFetchedResultsController]; 
      //the next line is the only one I changed!!!!!! 
      [self fetchFlickrDataIntoDocument:self.photoDatabase]; 
     }]; 
    } else if (self.photoDatabase.documentState == UIDocumentStateNormal) { 
     // already open and ready to use 
     [self setupFetchedResultsController]; 
    } 
} 

을 변경하는 코드입니다 처음으로 그 줄을 삭제할 수 있습니다. 누군가 내 실수에서 배울 수 있기를 바랍니다.

0

Litov, 솔루션에서 매번 데이터를 다시 가져 오는 것처럼 보입니다. 나는 fetchFlickrData의 구현이 고유 한 ID로 기존 레코드를 검사하고 아직로드되지 않은 레코드 만로드한다고 생각하기 때문에 중복이 발생하지 않는다고 생각합니다.

그럼에도 불구하고, 느린 응용 프로그램을 시작할 때마다 Flickr에서 데이터를 가져옵니다.

그러나 문제는 처음 실행했을 때 제대로 설정하지 못했다는 것을 알고 있기 때문에이 해킹없이 해결할 수 있습니다.이 데모를 기반으로 한 프로젝트에서 비슷한 문제가 발생했습니다. 시뮬레이터에서 데이터베이스 파일을 삭제합니다.

~/Library/Application Support/iPhone Simulator/5.1/Applications /로 이동하여 데이터베이스에서 "rm -fr"을 수행하면 파일 시스템에서이를 수행 할 수 있습니다 (이름이 지정된 디렉토리가됩니다) 그것. 그 경로의 "5.1"은 실행중인 시뮬레이터의 버전에 달려 있으며 읽을 수없는 크고 읽을 수없는 GUID 이름을 가진 디렉토리가 될 것입니다. 그러나 몇 가지로 cd하여 어느 것을 볼 수 있습니까? 귀하의 .app을 가지고 있습니다.

훨씬 쉬워졌습니다. 시뮬레이터에서 앱을 삭제하면됩니다 (iPhone/Pad에서와 같은 방식으로 아이콘을 누른 상태에서 X를 클릭하십시오).

+0

시뮬레이터에서 앱을 삭제했지만 여전히 작동하지 않습니다. 하지만 Xcode 6와 IOS8을 사용하고 있습니다. 거기에 어떤 관계가 있습니까? –