FBProfilePictureView对象不会显示图像

即时通讯做的3.1 iOS SDK的scrumptios facebook开发者教程。 我设法从Facebook显示我的个人资料名称,但FBProfilePictureView不会显示图片

inheritanceiboutlet的代码

@property (strong, nonatomic) IBOutlet FBProfilePictureView *useProfileImage; 

这是我用来显示图片

 self.useProfileImage.profileID = user.id; 

我已经确认它通过在标签中显示来改变图像的profileidvariables。

当我第一次运行项目时,我有这个错误

“2012-05-18 04:04:11.620美味[6548:f803] Interface Builder文件中的未知类FBProfilePictureView”。

并通过添加[FBProfilePictureView class];方式解决了这个问题[FBProfilePictureView class]; 到应用程序委托中的“applicationdidfinishlaunching:withoptions”。

任何想法为什么图片不会显示?

链接到教程

添加[FBProfilePictureView class]; 作为didFinishLaunching的应用程序委托方法的第一行似乎有点hacky对我来说。

查看SDK中的HelloFacebookSample。 这是4行评论:

 // If you have not added the -ObjC linker flag, you may need to uncomment the following line because // Nib files require the type to have been loaded before they can do the wireup successfully. // http://stackoverflow.com/questions/1725881/unknown-class-myclass-in-interface-builder-file-error-at-runtime // [FBProfilePictureView class]; 

我试着添加-ObjC标志,它工作正常。

要解决这个问题,请将其添加为应用程序委托的应用程序的第一行:didFinishLaunchingWithOptions:method:

[FBProfilePictureView类];

正如在facebook网页中所logging的,您需要放置[FBProfilePictureView类]; 作为didFinishLaunching的应用委托方法的第一行。 (注意他们的示例代码没有这个,但仍然有效,在我的情况下,没有它,它将无法正常工作。

我创build了一个UIView对象,然后select从UIView到FBProfilePictureView的类。 这将断开您的程序和IB之间的任何连接,因此您需要重新连接,无法看到图片的错误是由于对象没有连接到IBOutlet项目。 我不知道如果剪切和粘贴将工作,也许会,但我从UIView创build对象,只是通过IB手动改变类。

没有[FBProfilePictureView类]; 它会给你一个错误。

如果正确完成,如果您查看XIB – 在对象窗口/列表中,您应该看到“configuration文件图片视图”以及button和标签,而不是FBProfilePictureView。 从Facebook的个人资料图片应该显示。

我也有同样的问题。 我的解决scheme是取消选中xib文件的“文件检查器”中的“使用自动布局”选项。 要打开“文件检查器”,请在打开xib文件后按cmd +选项+ 1。

编辑1 :只需find另一个解决scheme。

尝试设置宽度约束和高度约束到configuration文件图片视图。 我觉得这个教程很有用。

我有同样的问题,xcode4.5.1 ios6。 要解决这个问题:在IB取消选中使用自动布局FBprofilepictureview,也取消select“autoresize子视图”到视图

他们(fb开发者论坛)说粘贴在你的应用程序委托didLunch方法就是这样

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; [FBProfilePictureView class]; // Create a LoginUIViewController instance where the login button will be LoginUIViewController *loginUIViewController = [[LoginUIViewController alloc] init]; // Set loginUIViewController as root view controller [[self window] setRootViewController:loginUIViewController]; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; return YES; } 

只是取代

  [FBProfilePictureView class]; with these commented lines it will work // Override point for customization after application launch. // Load the FBProfilePictureView // You can find more information about why you need to add this line of code in our troubleshooting guide // https://developers.facebook.com/docs/ios/troubleshooting#objc [FBProfilePictureView class]; 

它会奇迹般地工作:)

使用类别扩展现有类的类不会自动加载。 在Xcode界面构build器中使用的类不会自动加载,例如,通过在.xib文件中绘制一个视图,然后将FBLoginView从界面生成器UI中分类,将FBLoginView添加到界面中。

class有助于创build一个指向FBProfilePictureView的指针。