2013-09-26 3 views
10

私は電子メールとテキストメッセージを送信するためのアプリを持っています。MFMessageComposeViewController iOS 7の方がずっと遅い

私は、MFMessageComposeViewControllerの読み込みが、以前のiOSの場合よりもiOS 7の方がずっと遅く、連絡先の数が増えるにつれて最悪になるという問題があります。

メッセージアプリが開いてからコンテンツが読み込まれるまでに画面が数秒間黒くなります。

どのような考えですか?

同じ数の電子メールで、MFMailComposeViewControllerはこれまでよりも高速です。

ヘルプ!おかげさまで

+0

新しい空のプロジェクトで問題を再現しましたか? – Wain

+0

いいえライブプロジェクトのコピーを使用しています。 –

+0

これはあなたのプロジェクトの何かが原因ではないと確信していますか?ナビゲーションバーにカスタムフォントを使用していますか?簡単なプロジェクトで問題を証明してください。単純なプロジェクトでAppleがまだ起きている場合は、Appleにバグを報告してください。 – Wain

答えて

1

この問題は、私は同じ問題を抱えているiOS7.0.3

+6

iOS 7.1でもう一度この問題.. –

1

iMessageの受信者についてもこの問題が発生しています。

iClessからの履歴をiMessageと同期させるように思えます。私は4人の受取人がいて、最初のApple iMessageダイアログがポップアップするまでに約30秒かかりました。

これを待ってから、私は送信をキャンセルしました。次の繰り返しの試みがすぐに解決されました。この結果と、iOS7がメッセージ履歴をコンポーザービューに表示するという事実(iOS7以前は) Appleがビューをポップアップする前に何らかのiCloud同期を待っていると結論づける。

これはiPhone 4とiCloudアカウントが異なる新しいiPhone 5sの両方で再現されているため、iCloudアカウントや受信者にハードウェアが限定されていたり、一意ではないようです。


が、私はこの問題に対するの確認さ解決策を持っていないが、私は、さらなる調査のために提案するために、いくつかの回避策を持っている:

  • ユーザーの皆様の中には、デバイスを再起動すると、この問題を解決することを報告しています。
  • これは、iOS7にアップグレードした後、一意のiMessage受信者ごとに「1回限りの料金」となる可能性があります。
+1

私はiMessageと同じ問題もあります。しかし、私はまったく異なる問題を抱えています。メッセージが送信されないこともあります。この問題は、デバイスの再起動後に解決されます。私はこの問題について私の脳を荒らしてきており、断続的に見える。 – Calvin

+0

これはまったく同じですが、私のテストでは、デバイスの履歴を持つ受信者、つまりあなたが以前に伝えたことがある受信者に結びついているようです。既存のiMessage/SMSスレッドを持たない受信者を選択すると、コントローラは表示された直後に応答し、sendを押すとメッセージが正常に送信されます。 上記のように、デバイスを再起動すると(私の場合はiPhone 5)問題が(一時的に)解決されます。 – user1002428

4

で固定されています。

-(void)sendSMSFromController:(UIViewController*)controller 
{ 
    self.messageComposer = [MFMessageComposeViewController new]; 

    if([MFMessageComposeViewController canSendText]) { 
     [_messageComposer setBody:_body]; 
     [_messageComposer setRecipients:[NSArray arrayWithObjects:_recipient, nil]]; 
     [_messageComposer setMessageComposeDelegate:self]; 
     [controller presentViewController:_messageComposer animated:NO completion:NULL]; 
    } 
} 

Composerはすぐに表示されますが、ゆっくりと消える:私はその後、所有者クラスは、このメソッドを呼び出します

@property (nonatomic, strong, retain) MFMessageComposeViewController *messageComposer; 

で作曲強い参照を行いました。次のように確定します:

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result 
{ 
    switch (result) { 
     case MessageComposeResultCancelled: 
      NSLog(@"Message sending cancelled."); 
      break; 

     case MessageComposeResultFailed: 
      NSLog(@"Message sending failed."); 
      break; 

     case MessageComposeResultSent: 
      NSLog(@"Message sent."); 
     default: 
      break; 
    } 


    [controller dismissViewControllerAnimated:YES completion:^(){ 
     self.messageComposer = nil; 
    }]; 
} 

私のデバイスを再起動すると、明らかに機能します。再起動する前に(無効な受信者を送信してMessageServiceを操作した後で)失敗しました。

+0

ありがとう、それは私のために働いた...私はまだ私のiPhoneを再起動しなければならなかった奇妙な発見... – meronix

+0

MessageServiceのようないくつかのシングルトン、スレッドセーフ初期化していないようです。 – igraczech

関連する問題