iphone – Objective-C类别导致无法识别的选择器

iphone – Objective-C类别导致无法识别的选择器,第1张

概述我的项目有一个UIImage类别的函数,我想从另一个类调用。我正确地导入图像类别的头文件,我得到项目编译没有警告。 问题是,当我调用uiimage类别功能,我看到一个无法识别的选择器错误与NSInvalidArgumentException。为什么我看到这个,如果我已正确链接一切? #import <UIKit/UIKit.h>@interface UIImage (DRShare)+ ( 我的项目有一个UIImage类别的函数,我想从另一个类调用。我正确地导入图像类别的头文件,我得到项目编译没有警告。

问题是,当我调用uiImage类别功能,我看到一个无法识别的选择器错误与NSinvalidargumentexception。为什么我看到这个,如果我已正确链接一切?

#import <UIKit/UIKit.h>@interface UIImage (DRShare)+ (UIImage*) imagenamed:(Nsstring*)name;@end@implementation UIImage (DRShare)+ (UIImage*) imagenamedDR:(Nsstring*)name{    CGfloat s = 1.0f;    if([[UIScreen mainScreen] respondsToSelector:@selector(scale)]){        s = [[UIScreen mainScreen] scale];    }    Nsstring *path = [Nsstring stringWithFormat:@"%@%@%@.png",kImagesPath,name,s > 1 ? @"@2x":@""];    return [UIImage imageWithContentsOffile:DRBUNDLE(path)];}@end

文件调用它:

backgroundVIEw = [[UIImageVIEw alloc] initWithImage:[UIImage imagenamedDR:@"Share Popup Background"]];

引发异常:

2010-10-22 11:51:02.880 Stuff[11432:207] +[UIImage imagenamedDR:]: unrecognized selector sent to class 0x1f8e9382010-10-22 11:51:02.883 Stuff[11432:207] *** Terminating app due to uncaught exception 'NSinvalidargumentexception',reason: '+[UIImage imagenamedDR:]: unrecognized selector sent to class 0x1f8e938'*** Call stack at first throw:(    0   CoreFoundation                      0x02e65b99 __exceptionPreprocess + 185    1   libobjc.A.dylib                     0x02fb540e objc_exception_throw + 47    2   CoreFoundation                      0x02e6776b +[NSObject(NSObject) doesNotRecognizeSelector:] + 187    3   CoreFoundation                      0x02dd72b6 ___forwarding___ + 966    4   CoreFoundation                      0x02dd6e72 _CF_forwarding_prep_0 + 50    5   TapTapShare                         0x0001291c -[DRShareVIEwController backgroundVIEw] + 127    6   TapTapShare                         0x00012343 -[DRShareVIEwController loadVIEw] + 639    7   UIKit                               0x0044f54f -[UIVIEwController vIEw] + 56    8   UIKit                               0x0044d9f4 -[UIVIEwController contentScrollVIEw] + 42    9   UIKit                               0x0045d7e2 -[UINavigationController _computeAndApplyScrollContentInsetDeltaForVIEwController:] + 48    10  UIKit                               0x0045bea3 -[UINavigationController _layoutVIEwController:] + 43    11  UIKit                               0x0045d12d -[UINavigationController _startTransition:fromVIEwController:toVIEwController:] + 524    12  UIKit                               0x00457ccd -[UINavigationController _startDeferredTransitionIfNeeded] + 266    13  UIKit                               0x00574b55 -[UILayoutContainerVIEw layoutSubvIEws] + 226    14  QuartzCore                          0x02616481 -[CALayer layoutSublayers] + 177    15  QuartzCore                          0x026161b1 CALayerLayoutIfNeeded + 220    16  QuartzCore                          0x026160bd -[CALayer layoutIfNeeded] + 111
解决方法 几种可能性:

>您没有将UIImage TTShare.m链接到您的目标。所以当你有标题,你不是编译的实现。>如果这是静态库的一部分,则需要将-all_load添加到“其他链接器标记”构建设置,以便将应用程序与库链接。

总结

以上是内存溢出为你收集整理的iphone – Objective-C类别导致无法识别的选择器全部内容,希望文章能够帮你解决iphone – Objective-C类别导致无法识别的选择器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1047681.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存