我使用storyboard编辑器在视图控制器的主视图中创建了一个UIView
,并将其类更改为FBProfilePictureView
。
我创建了一个出口:
@property (weak, nonatomic) IBOutlet FBProfilePictureView *userImage;
但是,当我在代码中引用userImage
对象时,它会将自己报告为UIView。
NSLog(@"userImage class: %@", [userImage class]);
产地:
2012-08-28 17:52:22.196 FBTestApp[6230:707] userImage class: UIView
我错过了什么?
答案 0 :(得分:5)
虽然我没有看到FB docs中提到的错误,但添加了:
[FBProfilePictureView class];
对applicationDidFinishLaunching做了伎俩。大概是一些运行时魔术正在进行中。
答案 1 :(得分:0)
除了调用类方法之外,我不会依赖[userImage class]
。如果您需要确保userImage
的类型正确,请使用[userImage isKindOfClass:[FBProfilePictureView class]]
。如果您可以将对象视为FBProfilePictureView,它会通知您。
答案 2 :(得分:0)
更优雅的解决方法可能是添加-ObjC链接器标志而不是执行此操作"运行时魔术"东西。 Here you can find instructions on how to add the flag!
请参阅SDK documentation,其中包含:
Note: If you've added the -ObjC flag to your linker options, then you don't have to add this code. Adding that flag causes the linker to load all the object files in the Facebook SDK, including the FBLoginView class. If you want to know more about what the -ObjC flag does, you can check out our troubleshooting guide.
它提到了FBLoginView,但根据这个问题的答案,它也适用于FBProfilePictureView:FBProfilePictureView object wont show image
希望这有帮助。