2012-09-27 46 views
5

Gần đây tôi đã nâng cấp phiên bản XCode lên 4.5 và giờ tôi gặp sự cố khi cố gắng phát triển ứng dụng lên iOS 5.0/5.1.Sự cố khi chạy trình mô phỏng iOS 5.1 bằng XCode 4.5

Tôi đã phát triển một trò chơi iPad đơn giản, nơi người dùng cần khớp hình ảnh với các từ tương ứng. Tất cả các mục này được lưu trữ trong UIImageView, nếu nó có liên quan. Định hướng giao diện được hỗ trợ chỉ là cảnh quan.

Khi tôi chạy ứng dụng của mình bằng cách sử dụng iPad 6.0 Simulator, mọi thứ hoạt động tốt mà không gặp bất kỳ sự cố nào. Nhưng khi tôi cố gắng chạy nó bằng cách sử dụng 5.1, mọi thứ đều sai. Các hình ảnh đơn giản không xuất hiện và hình nền của tôi xuất hiện ngang và lặp lại. Thanh trạng thái cũng xuất hiện sai: hướng thiết bị nằm ngang, nhưng thanh bên xuất hiện ở bên phải. Điều này cũng không xảy ra khi tôi sử dụng mô phỏng 6.0.

Trong chi tiết dự án, tôi đã thay đổi Mục tiêu triển khai iOS thành 5.1, cũng như trong Bảng phân cảnh. Sử dụng mục tiêu triển khai iOS 5.1, bảng phân cảnh không cho phép tôi chọn tùy chọn "Sử dụng Autolayout", vì vậy tôi đã bỏ chọn tùy chọn này. Điều này có phải do tùy chọn này không?

Tôi đã cố chạy ứng dụng của mình trong một thiết bị nhưng kết quả vẫn như cũ. Vì tôi đã cài đặt XCode 4.5 nên tôi bắt đầu có các loại vấn đề này, vì ví dụ tôi thậm chí không thể chạy mẫu "Ứng dụng chính" trong trình mô phỏng iOS 5.x, vì nó bị treo khi tôi nhấp vào nút "Thêm" .

Tôi có thiếu thứ gì đó để chạy các ứng dụng 5.x được tạo bằng SDK 6 không? Tôi đã tìm kiếm trong rất nhiều diễn đàn nhưng tôi chưa tìm thấy giải pháp nào cho loại vấn đề này. Tôi sẽ rất vui khi nghe bất kỳ lời đề nghị nào, vì tôi đã mất rất nhiều thời gian xung quanh vấn đề này và tôi đang hết các lựa chọn.

[EDIT]: Tôi nhớ một chi tiết có thể có liên quan cho vấn đề này: chế độ xem trong bảng phân cảnh là chế độ xem tùy chỉnh. Tôi tạo ra một lớp mở rộng từ UIView để tôi có thể ghi đè lên chức năng drawRect để vẽ các đường thẳng giữa các đối tượng của tôi. Sau đó, trong Storyboard, trong View, tôi vừa chọn lớp của mình trong Custom Class -> Class.

Tôi nhận thấy rằng khi chạy 5.1 Trình mô phỏng thanh trạng thái ban đầu xuất hiện ở trên cùng và sau đó khi cửa sổ được tải, nó sẽ sang phải.

Nếu bạn muốn biết bất kỳ chi tiết nào khác, vui lòng chỉ hỏi tôi.

Cảm ơn bạn rất nhiều.

Trả lời

2

Bạn đã kiểm tra bảng phân cảnh của mình để đảm bảo rằng bạn đã tắt Tự động điền chưa? Autolayout chỉ hoạt động với iOS6. Tùy chọn này có thể được tìm thấy khi nhìn vào bộ điều khiển xem của bạn trong Khu vực Thanh tra Tệp trong Tài liệu Trình xây dựng Giao diện. Đây là hộp kiểm

+0

Có, như tôi đã nêu trong câu hỏi ban đầu của mình, tôi tắt Tự động điền. Nếu tùy chọn này được chọn, XCode thậm chí không cho phép tôi chạy dự án bằng cách sử dụng trình mô phỏng 5.1. – fabioalmeida

+0

Tôi nhận thấy rằng để giữ định hướng ngang trong 5.1 Trình mô phỏng, tôi cần ghi đè phương thức shouldAutorotateToInterfaceOrientation trong tôi Xem Bộ điều khiển, nhưng hình ảnh tôi đã xác định trong Storyboard vẫn không xuất hiện. Tôi có cần phải thay đổi một cái gì đó khác để nó hoạt động đúng trong 5.1 Simulator như trong 6.0? – fabioalmeida

0

Có vẻ như bạn không phải là người duy nhất có vấn đề về Trình mô phỏng 5.1 trong XCode 4.5. Bug in iPhone Simulator 5.1 with Xcode 4.5 using UIManagedDocument Ứng dụng của tôi cũng bị hỏng. 5.0 sim có vẻ hoạt động tốt.

+0

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. – fabioalmeida

4

tiếng Anh không phải là mẹ đẻ của tôi vì vậy hãy tha thứ ngữ pháp của tôi ...

As far as Master-chi tiết của bạn "Add" vấn đề, đây là những gì làm việc cho tôi.

Từ những gì tôi có thể nói, các tai nạn ứng dụng vì:

[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]: unrecognized selector sent to instance 

Trợ giúp nhanh nói:

- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath declaration is only available in iOS (6.0 and later). 

Vì vậy, tôi đã cố gắng thay đổi mã trong MasterViewController.m:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; 
    [self configureCell:cell atIndexPath:indexPath]; 
    return cell; 
} 

cho mã Xcode được sử dụng trong các phiên bản cũ hơn:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 

    } 
    [self configureCell:cell atIndexPath:indexPath]; 
    return cell; 
} 

Hy vọng điều này sẽ hữu ích.

Các vấn đề liên quan