2010-04-06 36 views
5

Tôi đang cố gắng sử dụng dòng khá chuẩn mã này trong ứng dụng của tôi:UIRemoteNotificationType chuyển đổi không hợp lệ

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)]; 

Nhưng đang nhận được lỗi sau:

error: invalid conversion from 'int' to 'UIRemoteNotificationType' 

Nó hoạt động nếu tôi chỉ sử dụng một của các loại thông báo nhưng không thành công mỗi lần nếu tôi thử và sử dụng nhiều loại thông báo. Bất kỳ ý tưởng những gì tôi đang làm sai?

Trả lời

14

Có thể bạn đang sử dụng Objective-C++, chuyển đổi ẩn từ int thành enum không được phép.

Cố gắng thêm một diễn viên rõ ràng:

[… registerForRemoteNotificationTypes: 
    (UIRemoteNotificationType)(UIRemoteNotificationTypeAlert | …)]; 
4

Bạn cần phải đúc kết quả như UIRemoteNotificationType:

(UIRemoteNotificationType)(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound) 

Bằng cách này phương pháp này có những gì nó được mong đợi.

+0

Điều này đúng nhưng tôi chấp nhận câu trả lời của KennyTM vì nó cung cấp chi tiết tại sao. Cảm ơn. –

1

Sử dụng này: Điều này sẽ giải quyết vấn đề ur.

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationType)(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)]; 
Các vấn đề liên quan