[英]Simulating sent SMS on iPhone
由於在設備上啟動/安裝應用程序時,在iOS 5.1上使用Xcode 4.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。
有沒有一種方法可以在iOS模擬器上創建與MFMessageComposeViewController兼容並且可以通過與MFMessageComposeViewController相同的方法傳遞的另一個對象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];
您正在尋找的被稱為“模擬對象”,通常用於測試驅動的開發中。 基本上,您要做的是創建MFMessageComposeViewController的子類。 該子類的工作原理與mfmessagecomposeviewcontroller完全相同,不同之處在於,您還創建了實例變量以表明發生了某些事情。
因此,例如,當您的代表調用messageComposeViewController:didFinishWithResult時。 模擬對象可能會存儲結果和該方法已被觸發的標志。 請注意,這實際上不會發送任何內容,而只是告訴您已觸發委托並在實際對象上起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.