Как я могу изменить эту строку кода [NgnAVSession releaseSession: &audioSession];
так, что я больше не получаю эту ошибку:Objective-C Passing адрес нелокального объекта __autoreleasing параметр
Passing address of non-local object to __autoreleasing parameter for write-back
это весь метод
- (void)viewWillDisappear:(BOOL)animated
{
[NgnAVSession releaseSession: &audioSession];
[UIDevice currentDevice].proximityMonitoringEnabled = NO;
}
Вот декларация releaseSession
Заголовок
+(void) releaseSession: (NgnAVSession**) session;
Реализация
+(void) releaseSession: (NgnAVSession**) session{
@synchronized (kSessions){
if (session && *session){
if([(*session) retainCount] == 1){
[kSessions removeObjectForKey:[*session getIdAsNumber]];
}
else {
[(*session) release];
}
*session = nil;
}
}
}
Я искал некоторые коды, которые имеют ту же ошибку, что и моя, но я не знаю, как редактировать свой код, как они. – theFool
Что такое объявление 'releaseSession:'? – Cristik
Я обновил код – theFool