저는 현재 모바일 앱에서 Facebook의 싱글 사인온 기능을 사용하고 있습니다. 지금까지 필자는 앱을 테스트하면서 Facebook 인증 대화 상자에 접근 할 수있었습니다. 하지만 앱을 승인 할 때 확인 버튼을 클릭하면 내 화면에서 검은 색 화면이 표시됩니다. 이것이 rootViewController
의 지정으로 인한 것인지 궁금합니다.아주 이상한 경고
2012-07-09 11:17:04.798 FbSSOTrial[976:f803] Application windows are expected to have a root view controller at the end of application launch
I : FbSSOTrialDelegate.m
self.window.rootViewController = self.FbSSOTrialVC;
나는 또한 Incompatible pointer types assigning to 'UIViewController *' from 'FbSSOTrialViewController *'
말을 경고하고 내 콘솔에서이 로그를 얻을 내에서 코드 줄에서
FbSSOTrialVC
은
UIViewController
의 하위 클래스입니다.
왜 이런 일이 벌어 지는지 나에게 알려주세요. 아래 논의부터 FbSSOTrialViewController.h
#import <UIKit/UIKit.h>
@interface FbSSOTrialViewController : UIViewController
@end
및 AppDelegate에
FbSSOTrialDelegate.h
#import <UIKit/UIKit.h>
#import "FBConnect.h"
@class FbSSOTrialViewController;
@interface FbSSOTrialAppDelegate : NSObject <UIApplicationDelegate, FBSessionDelegate>
{
Facebook *facebook;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet FbSSOTrialViewController *FbSSOTrialVC;
@property (nonatomic, retain) Facebook *facebook;
@end
FbSSOTrialDelegate.m
#import "FbSSOTrialAppDelegate.h"
@implementation FbSSOTrialAppDelegate
@synthesize window = _window;
@synthesize facebook = _facebook;
@synthesize FbSSOTrialVC = _FbSSOTrialVC;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
NSString *FbAppId = @"MY_APP_ID";
self.window.rootViewController = self.FbSSOTrialVC;
[self.window makeKeyAndVisible];
self.facebook = [[Facebook alloc] initWithAppId:FbAppId andDelegate:self];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) {
self.facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
self.facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![self.facebook isSessionValid]) {
[self.facebook authorize:nil];
}
return YES;
}
'FbSSOTrialViewController' * 실제로 * UIViewController를 확장합니까? –
예, 편집을 참조하십시오. – Grauzten
좋아, 다음은 빛을 비출 수있는 까다로운 세부 사항입니다. 별표를 확인하십시오 ... 오류 메시지에서 FbSSOTrialViewController : 'Assigning'UIViewController * 'from FbSSOTrialViewController'에 의심스러운 오류가 있습니다. 여기에 오류가 있는지 궁금해 지거나, 실제로 포인터가 없다고 생각한 곳이 있는지 궁금합니다. (오류가 무엇인지 *) * 그렇다면 어떻게 self.FbSSrialVC '초기화 중입니다. 그게 네 문제가있는 곳인 것 같아. 인스턴스에 대한 포인터 대신 Class 객체로 설정된 것처럼 보입니다. –