2011-08-10 18 views
21

Full cảnh báo:Xcode: Bắt cảnh báo "chuyển đổi ngầm từ kiểu enumeration UIDeviceOrientation"

Implicit conversion from enumeration type 'UIInterfaceOrientation' to different enumeration type 'UIDeviceOrientation' 

Bắt nó trên dòng:

[self orientationChanged:interfaceOrientation]; 

Đây là phương pháp:

- (void)orientationChanged:(UIInterfaceOrientation)interfaceOrientation 

Tôi thực sự không thể hiểu được cảnh báo này đến từ đâu.

Trả lời

89

UIDeviceOrientation đề cập đến hướng vật lý của thiết bị trong khi UIInterfaceOrientation đề cập đến hướng của giao diện người dùng. Khi bạn gọi phương thức của bạn

[self orientationChanged:interfaceOrientation]; 

bạn có nhiều khả năng đi qua nó một UIDeviceOrientation khi nào bạn nên, theo phương pháp này, được sử dụng một UIInterfaceOrientation.

Chỉ cần để mở rộng ở điểm này một chút, UIDeviceOrientation là một thuộc tính của lớp , và có những giá trị có thể:

UIDeviceOrientationUnknown - Không thể được xác định

UIDeviceOrientationPortrait - nút Home úp xuống dưới

UIDeviceOrientationPortraitUpsideDown - nút Home ngửa lên

UIDeviceOrientationLandscapeLeft - nút Home phải đối mặt ngay

UIDeviceOrientationLandscapeRight - nút Home lát trái

UIDeviceOrientationFaceUp - thiết bị là phẳng, với màn hình hướng lên

UIDeviceOrientationFaceDown - thiết bị là phẳng, với màn hình úp xuống dưới

Như cho UIInterfaceOrientation, là tài sản của UIApplication và chỉ chứa 4 khả năng tương ứng với hướng của thanh trạng thái:

UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait, 

UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown, 

UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight, 

UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft 

Để có được UIDeviceOrientation, bạn sử dụng

[[UIDevice currentDevice] orientation] 

và để có được UIInterfaceOrientation, bạn sử dụng

[[UIApplication sharedApplication] statusBarOrientation] 
+0

Quên để nói lời cảm ơn cho việc này. Vì vậy, ... Cảm ơn –

+2

Chỉ cần chạy vào vấn đề này một lần nữa và bạn đã cứu tôi một lần nữa. Tôi ước tôi có thể upvote bạn hai lần. –

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