2012-02-19 29 views
15

tình huống sau: Tôi muốn gửi SMS ứng dụng. Đây là mã của tôi tạo MFMessageComposeViewController:MFMessageComposeViewController trên Simulator - canSendText?

-(void) showMessageComposerWithText:(NSString*)messageText telNumber:(NSString*)telNumber composeDelegate:(id)delegate 
{ 
    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; 
    if([MFMessageComposeViewController canSendText]) 
    { 
     controller.body = messageText; 
     controller.recipients = [NSArray arrayWithObject:telNumber]; 
     controller.messageComposeDelegate = delegate; 

     [delegate presentModalViewController:controller animated:YES]; 
    } 
} 

Vì vậy, tôi nghĩ điều này là thẳng về phía trước. Khi thử nghiệm trong Trình mô phỏng, tôi nhận được ngoại lệ sau: Application tried to push a nil view controller on target <MFMessageComposeViewController: 0x8a4e090>. Tôi cũng tự hỏi tại sao [MFMessageComposeViewController canSendText] trả về YES khi chạy ứng dụng trong trình mô phỏng.

Khi chạy trên thiết bị, mọi thứ hoạt động chính xác.

Tôi không thể tìm thấy bất kỳ nội dung nào trong tài liệu/web liên quan đến hành vi kỳ lạ này.

Tôi đang chạy Xcode 4.3 trên OS 10.7.3, Deployment Target là iOS 5.0.

Cảm ơn trước, tubtub

Trả lời

23

Sự cố này xảy ra khi bạn cài đặt Tin nhắn beta trên OS X Lion.

Chỉnh sửa: Nó cũng xảy ra trên Mountain Lion khi có tài khoản iMessage được định cấu hình và bật. Nếu tài khoản bị vô hiệu hóa, nó hoạt động chính xác (canSendText trả về NO).

Mẹo: Nếu bạn sử dụng controller.modalTransitionStyle = UIModalTransitionStylePartialCurl, bạn có thể quay lại Chế độ mô phỏng bằng cách nhấp vào "trang" được cuộn tròn ở góc trên bên trái.

+2

Nếu Tin nhắn được cài đặt, 'canSendText' trả về' CÓ', nhưng chế độ xem sẽ trở thành màu đen và trống (không có nội dung). Nếu đã gỡ cài đặt Message beta, 'canSendText' sẽ trả về' NO'. Xcode 4.4 GM và iPhone 5.1 Simulator trên Lion. – Chris

+0

Mọi sửa lỗi cho điều này chưa? Lỗi này vẫn tồn tại trên Mac OS 10.8.2 với XCode 4.6.1. –

2

tôi nhìn thấy điều tương tự. Tôi nghĩ đó là lỗi trong trình mô phỏng iOS 5 với Xcode 4.3. canSendText trả về chính xác NO trong trình mô phỏng iOS 4.3. Cùng một mã hoạt động tốt trên thiết bị.

4

Trình mô phỏng phải luôn trả về NO từ canSendText, đây không phải là trường hợp cho các trình mô phỏng iOS 5.0 và 5.1. Với Xcode 4.2 nó bị hỏng, trên Xcode 4.3 nó chỉ đẩy một bộ điều khiển xem nil.

+0

Có vấn đề tương tự, chế độ xem nil đang được đẩy nhưng nó thậm chí còn xảy ra trên thiết bị thử nghiệm của tôi iPhone 4 chạy iOS 5.1 – OscarTheGrouch

1

Với cấu hình này, canSendText trả về đúng NO trong mô phỏng (cộng, một UIAlertView dường như nói tin nhắn văn bản không có sẵn):

  • Mountain Lion
  • Xcode 4.4,
  • iOS 5.1
+0

Tôi đoán bạn chưa bật và kích hoạt tài khoản iMessage. –

0

Nhận được lỗi tương tự. Im trên OSX 10.8.5 với XCode 5.0 (5A1413).

Đã cố gắng thay đổi thành các loại trình mô phỏng khác nhau (iPhone, iPad) nhưng kết quả giống nhau. Ngoài ra, hãy thử tắt tài khoản trong Tin nhắn, nhưng không có kết quả.

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