2012-02-24 135 views
0

我正在開發一個應用程序,該應用程序會按指定的次數定期向選定的聯繫人發送短信。我有短信發送功能工作,但我需要在每輪之後發送短信之間添加一個延遲。在iOS中發送短信時添加延遲

例如,如果我想要一個消息M在我的聯繫人發送給S和d,我需要的應用程序再次發送相同的消息給S和D

哪有之前等待N秒我得到這個工作?如何在發送消息到聯繫人之間添加延遲功能?

在此先感謝!

回答

5

乾脆說,你不行。 不允許自己發送消息,只能彈出短信顯示器,用戶自己必須點擊「發送」。 因此,如果在應用程序中以編程方式執行此操作,則這是不可能的。 如果您正在使用的服務器或東西發送短信可能可以..

0

好吧,如果你有短信發送功能想通了,那麼所有你需要的是:

[self performSelector:@selector(sendSMS) withObject:nil afterDelay:5.0]; 

這是,如果你的SMS數據位於model的某處。如果你需要一些數據發送到您的sendSMS方法,然後使用:

[self performSelector:@selector(sendSMS:) withObject:objectData afterDelay:5.0]; 
+0

雖然沒有明確說明,但我認爲這個問題涉及以編程方式發送SMS並且沒有任何用戶干預。這仍然需要有人點擊「發送」 – 2012-02-24 15:45:24

+0

嗯,爲什麼這需要有人點擊「發送」?通過sendSMS方法,OP可以發送短信。 – 2012-02-24 15:53:52

+1

因爲他們已經用於發送短信的方法要求您點擊「發送」。如果沒有用戶點擊「發送」,您將無法發送短信(除非您從服務器上進行) – 2012-02-24 19:34:41

1

是否可以設置的NSTimer爲以一定的間隔一定的次數去的,並在後臺您的應用程序運行後它已經關閉了?

做一個計時器:

int N = 3; 

_myTimer = [NSTimer scheduledTimerWithTimeInterval:N target:self selector:@selector(myMethod) userInfo:myContact repeats:YES]; 


-(void)myMethod:(NSTimer*)timer { 
    // Now I can access all the properties and methods of myObject 
    [[timer userInfo] myObjectMethod]; 
} 

在後臺運行,我不熟悉但是如果你開始尋找beginBackgroundTaskWithExpirationHandler:我敢肯定你會發現你所需要的答案。

希望這會有所幫助,祝你好運!