Objective c @interface<;文件名>;:NSObject和@interface NSObject(文件名)?
文件名:ABC.h&ABC.m (一) 首先,在另一个文件中不调用方法。 其次,在另一个文件中调用方法 第一个和第二个代码之间的区别是什么Objective c @interface<;文件名>;:NSObject和@interface NSObject(文件名)?,objective-c,Objective C,文件名:ABC.h&ABC.m (一) 首先,在另一个文件中不调用方法。 其次,在另一个文件中调用方法 第一个和第二个代码之间的区别是什么 @interface < ABC > : NSObject 这是NSObject上的一个类别。并且所有的category方法都可用于您所创建的类的所有子类。因此,在本例中,它位于NSObject中,大多数类继承自NSObject,(很少来自NSProxy) 这是ABC类的NSObject上的类别声明 子类化-为了访问实例,我们实例化了ABC (
@interface < ABC > : NSObject
这是NSObject
上的一个类别。并且所有的category方法都可用于您所创建的类的所有子类。因此,在本例中,它位于NSObject
中,大多数类继承自NSObject
,(很少来自NSProxy
)
这是ABC类的NSObject
上的类别声明
子类化-为了访问实例,我们实例化了ABC
(二)
类别-对于访问,我们不使用ABC的实例。相反,您可以使用NSObject实例访问该方法。这就像向NSObject类本身添加其他方法。对于第一个:
@interface < ABC > : NSObject
//methods and ivars to your new class
@end
1) @interface#import <Foundation/Foundation.h>
@interface NSString(MyAdditions)
+(NSString *)getCopyRightString;
@end
@implementation NSString(MyAdditions)
+(NSString *)getCopyRightString{
return @"Copyright TutorialsPoint.com 2013";
}
@end
int main(int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString *copyrightString = [NSString getCopyRightString];
NSLog(@"Accessing Category: %@",copyrightString);
[pool drain];
return 0;
}
1) @interface是一个类别。请注意,您必须将该类别导入任何您想要使用它的地方。您会惊讶于有多少初学者会犯这样的错误!当您的类别位于NSObject之类的东西上时,很容易忘记,毕竟您不需要导入NSObject.h!
@interface NSObject (ABC)
@interface < ABC > : NSObject
//methods
@end
@interface NSObject (ABC)
//methods
@end
@interface ABC : NSObject
//methods
@end
@interface NSObject (ABC)
//methods
@end
@interface < ABC > : NSObject
//methods and ivars to your new class
@end
@interface NSObject (ABC)
//methods to category of a specific class like NSString etc
@end
#import <Foundation/Foundation.h>
@interface NSString(MyAdditions)
+(NSString *)getCopyRightString;
@end
@implementation NSString(MyAdditions)
+(NSString *)getCopyRightString{
return @"Copyright TutorialsPoint.com 2013";
}
@end
int main(int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString *copyrightString = [NSString getCopyRightString];
NSLog(@"Accessing Category: %@",copyrightString);
[pool drain];
return 0;
}
2013-09-22 21:19:12.125 Categories[340:303] Accessing Category: Copyright TutorialsPoint.com 2013