Вы должны прекратить загрузку webView и удалить делегата, прежде чем покинуть вид:
// ARC (correct solution)
- (void)dealloc {
[_webView setDelegate:nil];
[_webView stopLoading];
}
// non ARC
- (void)dealloc {
[webView setDelegate:nil];
[webView stopLoading];
[webView release];
[super dealloc];
}
// ARC (older solution)
- (void)viewWillUnload {
[webView setDelegate:nil];
[webView stopLoading];
}
Что говорит документация Apple: Важно Перед выпуском экземпляра UIWebView, для которого вы установили делегат, вы должны сначала установить его свойство делегата на ноль . Это можно сделать, например, в вашем методе dealloc.
Я использовал простой скрипт с cron, чтобы убедиться, что программа работает. Если это не так, он запустит его. Возможно, это не идеальное решение, которое вы ищете, но оно простое и работает довольно хорошо.
#!/bin/bash
#make-run.sh
#make sure a process is always running.
export DISPLAY=:0 #needed if you are running a simple gui app.
process=YourProcessName
makerun="/usr/bin/program"
if ps ax | grep -v grep | grep $process > /dev/null
then
exit
else
$makerun &
fi
exit
Затем добавляйте задание cron каждую минуту или каждые 5 минут.