未命名类别
在()中不指定类别的名字
可以定义附加的实例变量
声明的方法需要在主实现区域实现
实例变量和方法都是私有的
如果想要写一个类,而且数据和方法仅供给这个类本身使用,未命名类比较适合
优点: 分解大块代码 为类做扩展
.h
#import <Foundation/Foundation.h> NS_ASSUME_NONNULL_BEGIN @interface UnNameCategoty : NSObject @property int i; -(void)func1; -(void)func2; @end NS_ASSUME_NONNULL_END
.m
#import "UnNameCategoty.h" //未命名类别 @interface UnNameCategoty() @property float f; -(void)fun3; @end // 只能放在类的实现中 @implementation UnNameCategoty -(void)fun1 { NSLog(@"func1"); } -(void)fun2 { NSLog(@"fun2"); [self setF:20.5]; [self fun3]; } -(void)fun3 { NSLog(@"func3"); } @end
main
#import <Foundation/Foundation.h> #import "UnNameCategoty.h" int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); UnNameCategoty* category=[[UnNameCategoty alloc]init]; [category setI:40]; //未命名方法成员和方法都是私有的 // [category self:10]; [category func1]; [category func2]; [category func3]; } return 0; }