我正在为3.1 iOS SDK做scrumptios facebook开发人员教程。 我设法从Facebook显示我的个人资料名称,但FBProfilePictureView不会显示图片
这里是iboutlet的代码
@property (strong, nonatomic) IBOutlet FBProfilePictureView *useProfileImage;
这是我用来显示图片
self.useProfileImage.profileID = user.id;
我已经确认它通过在标签中显示它来更改图像的profileid变量。
当我第一次运行项目时,我遇到了这个错误
" 2012-05-18 04:04:11.620 Scrumptious [6548:f803]未知类 Interface Builder文件中的FBProfilePictureView。"
并通过添加[FBProfilePictureView class];
以FB教程建议的方式解决了这个问题
to" applicationdidfinishlaunching:withoptions"在app delegate中。
任何想法为什么图片不会显示?
答案 0 :(得分:21)
在didFinishLaunching的app委托方法中添加[FBProfilePictureView class];
作为第一行似乎对我来说有点不好。
查看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
标记,但效果很好。
答案 1 :(得分:3)
要解决此问题,请将此添加为app delegate应用程序中的第一行:didFinishLaunchingWithOptions:method:
[FBProfilePictureView类];
答案 2 :(得分:2)
如facebook网页中所述,您需要输入[FBProfilePictureView类];作为didFinishLaunching的app委托方法的第一行。 (注意他们的示例代码没有这个,但仍然有效,在我的情况下,如果没有它,它将无法工作。
我创建了一个UIView对象,然后将其从UIView选择到FBProfilePictureView。这将断开程序与IB之间的任何连接,因此您需要重新连接,您无法看到图片的错误是由于对象未连接到IBOutlet项目。 我不确定剪切和粘贴是否会起作用,也许它会,但我从UIView创建了对象,并通过IB手动更改了类。
没有[FBProfilePictureView类];它会给你一个错误。
如果正确完成,如果您查看XIB - 在对象窗口/列表中,您应该看到“配置文件图片视图”以及Button和Label而不是FBProfilePictureView。来自facebook的个人资料图片应显示。
答案 3 :(得分:1)
我有同样的问题。我的解决方案是取消选中xib文件的“File Inspector”中的“Use autolayout”选项。要打开“文件检查器”,请在打开xib文件后按cmd +选项+ 1。
编辑1 :找到另一种解决方案。
尝试将宽度约束和高度约束设置为纵断面图片视图。我发现this tutorial很有用。
答案 4 :(得分:0)
我有同样的问题,xcode4.5.1 ios6。 要解决这个问题:在IB中取消选中对FBprofilepictureview使用autolayout,也取消选中“autoresize subview”到视图中
答案 5 :(得分:0)
他们(fb开发者论坛)说在你的app委托中粘贴了像那样的那种方法
- (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];
它会神奇地起作用:)
答案 6 :(得分:0)
不会自动加载使用类别扩展现有类的类。不会自动加载从Xcode界面构建器使用的类,例如,通过在.xib文件中绘制视图,然后从界面构建器UI将其作为FBLoginView分类,将FBLoginView添加到界面时。
class
有助于创建指向FBProfilePictureView的指针。