Что я сделал, чтобы преодолеть эту проблему, так это создать класс-оболочку для FB, который я назвал «FacebookManager».Он отвечает за каждый запрос FB, выполненный в вашей заявке.Будучи одноэтапным приложением, его жизненный цикл длится также на протяжении всей жизни приложения.
@protocol
@optional
-(void)fbDidLogin;
-(void)fbDidNotLogin:(BOOL)cancelled;
-(void)fbDidExtendToken:(NSString *)accessToken expiresAt:(NSDate *)expiresAt;
-(void)fbDidLogout;
-(void)fbSessionInvalidated;
-(void)request:(FBRequest *)request didLoad:(id)result;
@end
@interface FacebookManager : Facebook <FBSessionDelegate, FBRequestDelegate>
+(FacebookManager *)sharedFacebookInstance;
-(void)setFacebookDelegate:(id)delegate;
-(void)requestWithGraphPath:(NSString *)fbPath;
Другие классы, обычно ViewControllers, могут быть делегатом FacebookManager (или, при необходимости, вы можете создать массивделегаты при обработке одновременных запросов).Когда FacebookManager получает ответ от запроса, он передает его исходному классу.Кроме того, поскольку он является единственным делегатом для каждого запроса FB и никогда не освобождается из вашей программы, даже когда исходный класс освобождается, ошибок не возникает.
В качестве бонуса ко всему этому вы автоматически теряете эти предупреждениядля методов, которые вы не должны реализовывать, если не хотите.
Надеюсь, это поможет в любом случае!