2012-09-24 18 views
9

Tôi có một vấn đề rất lạ mà tôi đã dành hai ngày qua để giải quyết ... Tôi đã có một đoạn mã hoạt động hoàn hảo trên Xcode 4.4 và iOS 5.1 Trình mô phỏng, sử dụng SDK 5.1. Sau khi tôi cập nhật lên Xcode 4.5 và 6.0 SDK, mã của tôi đã ngừng hoạt động trong Trình mô phỏng iOS 5.1 ... mặc dù nó hoạt động hoàn toàn tốt trong Trình mô phỏng iOS 6.0. Có bất kỳ thay đổi nào mà tôi không biết?Lỗi trong iPhone Simulator 5.1 với Xcode 4.5 sử dụng UIManagedDocument

Đây là mã:

- (void)useDocument 
{ 
    if (![[NSFileManager defaultManager] fileExistsAtPath:[self.database.fileURL path]]){ 
     [self.database saveToURL:self.database.fileURL forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success){ 
      [self setupFetchedResultsController]; 
    }]; 
    } else if (self.database.documentState == UIDocumentStateClosed){ 
     [self.database openWithCompletionHandler:^(BOOL success){ 
      [self setupFetchedResultsController]; 
     }];   
    } else if (self.database.documentState == UIDocumentStateNormal) { 
     [self setupFetchedResultsController]; 
    } 
} 

Đối với một số lý do saveToURL và openWithCompletionHandler bao giờ trở lại trong 5.1 Simulator. Có ai biết tại sao không?

+1

Tôi rất vui vì tôi đã tìm thấy câu hỏi của bạn, bởi vì tôi có cùng một vấn đề và chỉ phát hiện ra rằng có vẻ như đó là sự cố với Trình mô phỏng 5.1. Tôi đoán mã của bạn cũng dựa trên khóa học Stanford 2011 (phương thức 'useDocument' gợi ý nó). – brainray

+0

Vâng, thiết lập UIManagedDocument của tôi là một bản sao và dán từ mã của Paul. Chỉ có sự khác biệt là một vài dòng để thêm hỗ trợ cho việc di chuyển nhẹ. –

+0

Tôi gặp vấn đề tương tự. Bạn đã tìm thấy giải pháp nào cho vấn đề này chưa? Cảm ơn! – Yan

Trả lời

5

Tôi gặp sự cố tương tự trong Trình mô phỏng iPhone 5.1. Tệp được tạo sau một thời gian dài (30 giây). Nhưng trình xử lý hoàn thành không bao giờ được gọi. Bạn đã thử trên thiết bị chưa?

EDIT: Đây có vẻ là lỗi trong iOS Simulator 5.1. Tôi đã biên dịch mã trên iPad cũ của tôi với iOS 5.1.1 và nó hoạt động mà không có lỗi!

+0

Tôi đã kiểm tra một lần và nó không hoạt động. Nhưng rất nhiều người nói với tôi rằng nó chỉ là giả lập mà bây giờ tôi tự hỏi nếu không có một lỗi trên mã của tôi khi tôi thử nghiệm. –

5

Không thể nói cho dự án của bạn, nhưng ở đây chắc chắn là Xcode 4.5.

Tôi có một bản sao của Xcode 4.3.1 với Simulator 5.1 trên một máy ảo, và đoán những gì: đó là một hoạt động hoàn hảo

-> Xcode4.3.1/Simulator5.1 hoạt động!

-> Xcode4.5 /Simulator5.1 là bị lỗi

-> Xcode4.5.1/Simulator5.1 là bị lỗi

Là một workaround bạn có thể tải về phiên bản 5.0 của trình giả lập trong Xcode -> Preferences -> Tải xuống. Cái đó hoạt động.

+0

Tôi có Trình mô phỏng 5.0 và hoạt động hoàn hảo. Cảm ơn! – Yan

+0

XCode 4.5.2 Trình mô phỏng iOS 5.1 không hoạt động, trình mô phỏng iOS 5.0 (và trình mô phỏng 6.0). Cảm ơn. – Joe

-1

Tôi không tin rằng sự cố xảy ra trong trình mô phỏng. Tôi đã có chính xác cùng một vấn đề (ứng dụng chạy trên 6.0 nhưng không phải trong 5.x) và tôi cũng đã cố gắng để chạy nó trong một thiết bị và nó xảy ra chính xác như nhau. (Tôi đã giải thích sự cố của mình here)

Sự cố của tôi xảy ra cả trong 5.0 và 5.1. Ví dụ, tôi thậm chí không thể chạy mẫu "Ứng dụng chi tiết chính" trong bất kỳ trình mô phỏng iOS 5.x nào, nhưng nó hoạt động tốt trong 6.0. Ngay cả khi tôi thử mẫu này trong một thiết bị, nó không hoạt động đúng cách. Vì vậy, tôi thực sự tin rằng vấn đề là trong XCode 4.5.

+0

Vui lòng đọc lại câu hỏi và câu trả lời: vấn đề được mô tả ở đây là về trình mô phỏng 5.1. Vấn đề của bạn là về iOS 5.x và iOS 6.0. – brainray

+0

Câu hỏi ban đầu nêu rõ vấn đề tương tự với tôi. Người dùng có thể chạy nó trong 6.0 Simulator nhưng không phải trong 5.1 sau khi cập nhật XCode 4.5, giống như tôi. – fabioalmeida