Tamil_Arya,
Вы не должны сбрасывать весь код в AppDelegate только потому, что это синглтон и через вне доступна: жизненного цикла приложения. Вложение всего в appdelegate сделает ваш код очень неуклюжим и будет следовать очень плохому шаблону дизайна.
Следующее MVC - одна хорошая вещь, которую вы можете сделать, чтобы ваш код был надежным и надежным.
Во всяком случае Вот что вы можете сделать,
Я считаю, что вы должны быть с singleton
класс для создания веб-сервиса звонков. Если не создать его.
Для примера назовем класс как WebService.h
и WebService.m
Так что ваш WebService.h должен выглядеть
@interface WebService : NSObject
+ (instancetype)shared; //singleton provider method
- (void)startSendPresence; //method you will call to hit your server at regular interval
- (void)stopSendPresence //method you will call to stop hitting
@end
WebService.m должен выглядеть
@interface WebService()
@property (strong, nonatomic) NSTimer *presenceTimer;
@end
@implementation WebService
+ (instancetype)shared
{
static id instance_ = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance_ = [[self alloc] init];
});
return instance_;
}
- (void)startSendPresence {
[self sendPresence:nil]; //to make the first webservice call without waiting for timer to trigger
if(!self.presenceTimer){
self.presenceTimer = [NSTimer scheduledTimerWithTimeInterval:self.presenceTimerInterval target:self selector:@selector(sendPresence:) userInfo:nil repeats:YES];
}
}
- (void)sendPresence:(NSTimer *)timer {
//make your web service call here to hit server
}
- (void)stopSendPresence {
[self.presenceTimer invalidate];
self.presenceTimer = nil;
}
@end
Теперь ваш Webservice одноплодной класс, чтобы попасть в веб-сервер с регулярным интервалом, готов :) Теперь вызовите его там, где вы хотите, когда хотите начать атаку и вызвать stopSend Присутствие, когда вы хотите, чтобы остановить его :)
Предполагая, что вы хотите, чтобы начать удар сервера, как только приложения появляется на переднем плане всегда (хотя не имеет особого смысла для меня надеюсь, что это делает для вас)
В вашем AppDelegate .m
//this method will be called when you launch app
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[WebService shared] startSendPresence];
}
//this method will be called when you brimg it foreground from background
- (void)applicationWillEnterForeground:(UIApplication *)application {
[[WebService shared] startSendPresence];
}
Если вы хотите, чтобы остановить удары разъединить, как только приложение переходит в фоновый
- (void)applicationDidEnterBackground:(UIApplication *)application {
[[WebService shared] stopSendPresence];
}
Надеется, что это помогает
любой код был бы оценен. –
Положить таймер, который запускает каждую минуту и выполняет этот метод? – Stefan
- (void) serverCallMethod {// мой код вызова для вызова} Я хочу звонить каждый мин, но не должен зависеть от какого-либо класса Vc –