У меня есть приложение в Xcode 4.6, которое соединяется с Facebook. Я заметил, что время от времени, когда приложение переходит в фоновый режим и возвращается на передний план, время от времени возникают сбои в разных точках приложения. Из-за непоследовательности сбои было трудно анализировать, поэтому я попытался использовать инструменты для выявления утечек памяти. Я новичок в iOS, и хотя мне удалось успешно определить, что у меня есть утечки памяти, и я даже вижу, какие методы их вызывают, я ловлю себя на мысли, что теперь? Другими словами, я вижу, в чем проблема, но не могу ее идентифицировать. Я надеюсь, что если я выделю пример, кто-то может пролить свет.
**Вот что я смотрю в инструментах:
Просто взгляните на первый просочившийся объект в списке:
Утечка объекта = сессия FB
Ответственный фрейм =
+[FBSession openActiveSessionWithPermissions:allowLoginUI:allowSystemAccount:isRead:defaultAudience:completionHandler:]
Я интерпретирую это как означающее, что внутри этого метода существует какой-то утечка объекта. Это правильно? Реализованный метод существует в моем делегате приложения и выглядит так:
- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"user_about_me",
@"read_friendlists",
nil];
//IMPLEMENTED METHOD
return [FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
[self sessionStateChanged:session
state:state
error:error];
}];
}
На данный момент я не уверен, что мне нужно делать, или что в этом методе может даже вызвать утечку. Я просмотрел учебники по утечке памяти, но они только помогли мне найти проблему, но не помогли мне понять, как ее решить. Любая помощь приветствуется.