我有一个CocoaPods的项目,很棒,直到我开始遇到一些问题。
我正在使用UIActionSheet
和UIAlertView
的窗格使用块来扩展这些类的类别。
我将pod添加到.pods文件并将标头导入我的项目。当我将代码添加到项目时,Xcode不会抱怨什么,我甚至在自动完成建议中看到了类别方法。
但是,当我运行应用程序时,它总是在类别方法执行时崩溃,说“无法识别的选择器已发送到(UIActionSheet
或UIAlertView
)”。
我已经将这些类直接添加到我的项目中,并且效果很好所以我认为这是CocoaPods的问题。
以下是代码示例:
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
RIButtonItem *selectPhotoButton = [RIButtonItem itemWithLabel:NSLocalizedString(@"Choose from library",nil) action:^{
[self selectPhoto];
}];
RIButtonItem *takePhotoButton = [RIButtonItem itemWithLabel:NSLocalizedString(@"Take a photo",nil) action:^{
[self takePhoto];
}];
UIActionSheet *ac = [[UIActionSheet alloc] initWithTitle:NSLocalizedString(@"Image source",nil) cancelButtonItem:[RIButtonItem itemWithLabel:NSLocalizedString(@"Cancel",nil)] destructiveButtonItem:nil otherButtonItems:takePhotoButton,selectPhotoButton, nil];
[ac showInView:self.view];
}
else
{
[self selectPhoto];
}
该应用程序在initWithTitle:cancelButtonItem:destructiveButtonItem:otherButtonItems
这是我的Podsfile
pod 'MBProgressHUD'
pod 'Facebook-iOS-SDK'
pod 'UIAlertView-Blocks'
任何想法?
答案 0 :(得分:0)
我在这里找到了答案 - linking objective-c categories in a static library
我在其他链接器标志中缺少-ObjC标志,这是实现类别的静态库所必需的。
非常感谢