0

我有一个视图控制器,其中包含实现 Facebook 窗口的代码。问题是要运行代码,我需要这个 url:

- (BOOL)application:(UIApplication *)application
 openURL:(NSURL *)url
 sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// attempt to extract a token from the url
 self.openedURL = url;
// attempt to extract a token from the url
 return [FBSession.activeSession handleOpenURL:url];       
 }

...据我所知,它只能在应用程序委托中运行,但我需要它来获取 url。如果我只是将它添加到委托中,它不会被调用,而且我不知道它何时被调用以及如何调用。有什么建议么??

4

2 回答 2

1

如果您需要在另一个类中使用应用程序委托的属性,您可以在视图控制器类中使用以下代码(假设您的应用程序委托类的名称是 AppDelegate):

NSURL *theURL = [(AppDelegate *)[[UIApplication shardApplication]delegate] openedURL];

我在这里假设您想将此 URL 传递给您的控制器。您还需要将 AppDelegate.h 文件导入控制器。

于 2012-11-12T19:13:34.720 回答
0

如果您需要查看 url,您可以使用全局变量从该函数存储它并在以后使用它,让我们假设您有一个名为 appData 的单例声明一个静态变量

.h 文件

+(appData*)sharedAppData;
@property (nonatomic,retain) nsurl * myUrl;

在 .m 文件中

static appData* = nil;

 initFunction {

      if(! appData) {  appData = [[appData alloc] init];}
  }

 +(appData*)sharedAppData{
  return appData;
  }

在 init 函数中初始化此对象,因此在系统中的任何位置,您都可以通过以下方式访问此数据

appData * data = [appData sharedData]; data.myurl =.... nslog(@"我的 url %@",data.url);

于 2012-11-12T19:15:28.257 回答