API Facebook вызывает сбой приложения при переключении обратно на основной вид - PullRequest
0 голосов
/ 23 августа 2011

Heads Up: мне не очень удобно с Objective C, чтобы точно знать, о чем я говорю ..

Вот моя история жизни: мое приложение в основном состоит из 3 просмотров: main, facebook итвиттер .. Нет проблем с твиттером, нет проблем с переключением между представлениями, пока ... бум бум бум .. Я начал использовать Facebook API в руководстве с этого сайта: http://www.mobisoftinfotech.com/blog/iphone/iphone-fbconnect-facebook-connect-tutorial/

Теперь я могуподключаться к FB и использовать их API и публиковать без каких-либо проблем, но когда я переключаюсь обратно из просмотра Facebook в моем приложении на главный экран, он переключается, а затем сразу падает.

FacebookViewController.m

#import "FacebookViewController.h"
#import "Crush_LoveAppDelegate.h"

#define _APP_KEY @"43e37a535cc09c2013bd76fde78dfcc7"
#define _SECRET_KEY @"cc14801521a0c4d1dc31b7cacb891072"

@implementation FacebookViewController
@synthesize facebookFeed;
@synthesize delegate;
@synthesize loginButton;
@synthesize facebookAlert;
@synthesize usersession;
@synthesize username;
@synthesize post;



- (void)viewDidLoad {

Crush_LoveAppDelegate *appDelegate =
(Crush_LoveAppDelegate *)   [[UIApplication
                              sharedApplication]delegate];
if (appDelegate._session == nil){
    appDelegate._session = [FBSession sessionForApplication:_APP_KEY secret:_SECRET_KEY delegate:self];
}

if(self.loginButton == NULL)
    self.loginButton = [[[FBLoginButton alloc] init] autorelease];
loginButton.frame = CGRectMake(110, 200, 100, 50);
[self.view addSubview:loginButton]; 
[super viewDidLoad];
self.view.backgroundColor = [UIColor viewFlipsideBackgroundColor];

}


- (IBAction)done:(id)sender {
[self.delegate facebookViewControllerDidFinish:self];
}

FacebookViewController.h

#import <UIKit/UIKit.h>
#import "FBConnect/FBConnect.h"
#import "FBConnect/FBSession.h"
#import "FBConnect/FBRequest.h"
#import "FBConnect/FBStreamDialog.h"

@protocol FacebookViewControllerDelegate;

@interface FacebookViewController : UIViewController <UIApplicationDelegate, FBSessionDelegate, FBRequestDelegate>{
IBOutlet UIWebView *facebookFeed;
id <FacebookViewControllerDelegate> delegate;
FBLoginButton *loginButton;
UIAlertView *facebookAlert;
FBSession *usersession;
NSString *username;
BOOL post;

}

@property(nonatomic,retain) FBLoginButton *loginButton;
@property(nonatomic,retain) UIAlertView *facebookAlert;
@property(nonatomic,retain)  FBSession *usersession;
@property(nonatomic,retain) NSString *username;
@property(nonatomic,assign) BOOL post;
@property (nonatomic, assign) id <FacebookViewControllerDelegate> delegate;
@property (nonatomic, retain) IBOutlet UIWebView *facebookFeed;
- (IBAction)done:(id)sender;
@end


@protocol FacebookViewControllerDelegate
- (void)facebookViewControllerDidFinish:(FacebookViewController *)controller;

- (BOOL)textFieldShouldReturn:(UITextField *)textField;
-(void)getFacebookName;
-(void)postToWall;

@end

Я отрубил часть .m поста, чтобы сэкономить место, но вы поняли идею ... Я сузил это, и похоже,проблема вызвана во время этой строки в .m

        appDelegate._session = [FBSession sessionForApplication:_APP_KEY secret:_SECRET_KEY delegate:self];

Я пытался отлаживать его сам в течение нескольких часов, и я сам не знаю достаточно, чтобы самостоятельно его диагностировать ..

Есть мысли?

Ответы [ 2 ]

0 голосов
/ 24 августа 2011

Хорошо, для всех, у кого была эта проблема, вот что я сделал ..

Файл FacebookViewController.m

- (void)dealloc {
[username release];
[usersession release];
[loginButton release];  
[super dealloc];
}

Я прокомментировал [релиз loginButton]; линия, и это работало достаточно странно .. Я не знаю, если это вызовет у меня серьезные проблемы в будущем, но это работает пока ..

0 голосов
/ 23 августа 2011

Я не уверен, почему ваше приложение падает, но подумал, что упомяну, что есть несколько действительно хороших видео Apple WWDC о проверке ошибок и сбоях в XCode. В частности, « Отладка с Xcode 4 и LLDB » и « Общие сведения о сбоях на iPhone OS », оба из видео WWDC 2010 . Я полагаю, что вам нужен логин разработчика, чтобы получить доступ к этим видео, но, безусловно, стоит посмотреть, если вы хотите узнать больше об отладке.

...