Вы должны использовать методы - (void)didReceiveMemoryWarning
и - (void)dealloc
.
В iOS 6 методы viewWillUnload и viewDidUnload для UIViewController теперь устарели. Если вы использовали эти методы для выпуска данных, вместо этого используйте метод didReceiveMemoryWarning. Вы также можете использовать этот метод для публикации ссылок на представление контроллера представления, если он не используется. Вам нужно будет проверить, что представление не находится в окне, прежде чем делать это.
blockquote>Итак, вы должны проверить, находится ли ваше представление в окне первым, а затем удалить своего наблюдателя в
didReceiveMemoryWarning
JavaScript в браузерах обычно не поддерживает именованный захват.
Именованные биты захвата - это (?<name>.*?)
и (?<email>\S+@[^\s>)]+)
.
Вы можете заменить названный захват на нумерованные группы захвата, изменив это:
[\W"]*(?<name>.*?)[\"]*?\s*[<(]?(?<email>\S+@[^\s>)]+)[>)]?
на это:
[\W"]*(.*?)[\"]*?\s*[<(]?(\S+@[^\s>)]+)[>)]?
[/g0]
Итак, в JavaScript это будет выглядеть так:
match = subject.match(/[\W"]*(.*?)[\"]*?\s*[<(]?(\S+@[^\s>)]+)[>)]?/i);
if (match != null) {
// matched text: match[0]
// match start: match.index
// capturing group 1 (name): match[1]
// capturing group 2 (email): match[2]
} else {
// Match attempt failed
}
Помните, что группы захвата могут быть добавлены только, если они что-то захватывают.
Добавьте :
после (?
, чтобы предотвратить ссылку на паратезис:
/[\W"]*(?:"<name>".*?)[\"]*?\s*[<\(]?(?:"<email>"\S+@[^\s>)]+)[>)]?/
Насколько я могу судить, нет никакого искажения (это было бы примерно так: (?<=prefix)
). Но, возможно, помеченное совпадение не поддерживается ((?"<name>"...)
). Попробуйте без этого и сравните совпадения по их числу:
/[\W"]*(.*?)[\"]*?\s*[<(]?(\S+@[^\s>)]+)[>)]?/
Имя будет первым, а электронная почта - второй захваченной группой