Прежде всего вам нужно разделить ваш вопрос на 2.
К вашей первой части. Я не помню конкретного примера, но вы можете использовать некоторые директивы #ifdef для определения различного кода для различных версий iOS.
На вашу вторую часть:
self.mFavoritesNamesArray=[[beginWithB sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)] mutableCopy]; //here it is showing leak
Я не вижу весь ваш код, но я думаю, что вы определили свойство mFolatedNamesArray с модификатором сохранения или копирования. Таким образом, вы, вероятно, выделяете память с помощью методов, которые автоматически генерируются для свойств, и с помощью mutableCopy во второй раз.
Возможное решение - вручную освободить этот массив перед последней строкой и использовать его без «self». В этом случае вам не нужно свойство для этого. И я думаю, что похожая ошибка есть в первой строке вашего кода, но я не уверен в этом из-за такого небольшого количества кода