大佬教程收集整理的这篇文章主要介绍了ios – NSObject的类别可用于每个NSObject子类,即使没有任何地方导入此类别的.h文件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
请考虑以下步骤:
2)创建一个类NSObject Extension.h和.m文件:
// .h @interface NSObject (Extension) - (void)someMethod; @end // .m @implementation NSObject (Extension) - (void)someMethod { NSLog(@"someMethod was called"); } @end
3)确保NSObject Extension.m文件包含在主目标中.
4)将以下行添加到AppDelegate中:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[NSString new] performSELEctor:@SELEctor(someMethod)]; return YES; }
5)确保#import“NSObject Extension.h行在应用程序中不存在!
6)运行应用程序.
输出是
2013-08-27 04:12:53.642 Experimental[32263:c07] someMethod was called
问题
>我想知道在应用程序中是否有任何这个类别的任何#import,NSString甚至还有NSObject Extension可用吗?这个行为让我对每个我声明的Objective-C类感到非常糟糕,因为我希望我声明的类别只能在它们被声明的范围内可用.例如,我希望NSObject只在一些类中扩展,而不是在整个应用程序中,因为它的全局空间变得“被污染”.
有没有办法避免这种行为?我确实希望我的类别只有在我明确导入它们时才能工作,而不是当我将它们链接到我用来运行的目标时.
以上是大佬教程为你收集整理的ios – NSObject的类别可用于每个NSObject子类,即使没有任何地方导入此类别的.h文件全部内容,希望文章能够帮你解决ios – NSObject的类别可用于每个NSObject子类,即使没有任何地方导入此类别的.h文件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。