iOS5.1のXcode4.3では、デバイスでアプリを起動/インストールするときにデバッグが非常に遅いため、はるかに高速に起動するシミュレーターを使用します。(この問題に関する私の質問はこちらhttps://stackoverflow.com/questions/11541288/xcode-4-3-with-ios5-1-pauses-about-10secs-when-debug-starts-simulator-starts-iを参照してください)
だから私がする必要があるのはこのようなものです:
MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
picker.messageComposeDelegate = delegate;
NSString *s = @"1234567";
picker.recipients =[NSArray arrayWithObject: s];
picker.body =smsTxt;
if (simulationMode) {
MessageComposeResult result = MessageComposeResultSent; <-----------
[delegate messageComposeViewController:picker didFinishWithResult: result];
} else
[delegate presentModalViewController:picker animated:YES];
ここで問題となるのは、iOS-Simulatorで実行すると、MFMessageComposeViewControllerをインスタンス化できず、常にnilが生成されることです。
MFMessageComposeViewControllerと互換性があり、MFMessageComposeViewControllerのような同じメソッドで渡すことができるiOSシミュレーターで別のオブジェクトMyOwnMFMessageComposeViewControllerを作成する方法はありますか?
このようなもの:
MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
picker.messageComposeDelegate = delegate;
NSString *s = @"1234567";
picker.recipients =[NSArray arrayWithObject: s];
picker.body =smsTxt;
if (simulationMode) {
MyOwnMFMessageComposeViewController *mypicker = [[MFMessageComposeViewController alloc] init];
mypicker.messageComposeDelegate = delegate;
NSString *s = @"1234567";
mypicker.recipients =[NSArray arrayWithObject: s];
mypicker.body =smsTxt;
MessageComposeResult result = MessageComposeResultSent;
picker = (MFMessageComposeViewController) mypicker;
[delegate messageComposeViewController:picker didFinishWithResult: result];
} else
[delegate presentModalViewController:picker animated:YES];