程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Category一些(實用)用法

Category一些(實用)用法

編輯:關於C語言

--實現基本的類別擴展,用以修改屬性的讀寫屬性:

Things.h

#import <Foundation/Foundation.h>
@interface Things : NSObject
@property (assign) NSInteger Things1;
@property (readonly, assign) NSInteger Things2;
-(void)resetAllValue;
@end

Things.m

#import "Things.h"
@interface Things()
@property (assign) NSInteger Things3;
@property (readwrite, assign) NSInteger Things2;
@end
@implementation Things
@synthesize Things1;
@synthesize Things2;
@synthesize Things3;
-(void)resetAllValue{
    self.Things1=1;
    self.Things2=2;
    self.Things3=2;
};
-(NSString *)description{
    return ([NSString stringWithFormat:@"Things1=%i,Things2=%i,Things3=%i",self.Things1,self.Things2,self.Things3]);
}
@end

對於一些隱藏細節的屬性,通常需要使用類別來實現代碼的讀寫控制,如該類中的Things2屬性。


--實現分布的實現類功能多人開發/框架過大)

CategoryThing.h

@interface CategoryThing : NSObject{
    NSInteger thing1;
    NSInteger thing2;
    NSInteger thing3;
}
@end
@interface CategoryThing(Thing1)
-(void)setThing1:(NSInteger)th1;
-(NSInteger)thing1;
@end
@interface CategoryThing(Thing2)
-(void)setThing2:(NSInteger)th2;
-(NSInteger)thing2;
@end
@interface CategoryThing(Thing3)
-(void)setThing3:(NSInteger)th3;
-(NSInteger)thing3;
@end

Thing1.m

#import "CategoryThing.h"
@implementation CategoryThing(Thing1)
-(void)setThing1:(NSInteger)th1{
    thing1=th1;
};
-(NSInteger)thing1{
    return thing1;
};
@end

Thing2.m Thing3.m以此類推。


--擴展系統的功能最常見)

NSString+NumberConvertion.h

@interface NSString (NumberConvertion)
-(NSNumber *)lengthAsNumber;
@end


NSString+NumberConvertion.m

#import "NSString+NumberConvertion.h"
@implementation NSString (NumberConvertion)
-(NSNumber *)lengthAsNumber{
                                
    NSUInteger length=[self length];
    return ([NSNumber numberWithUnsignedInteger:length]);
                                
};
@end




本文出自 “JAVA積累” 博客,請務必保留此出處http://linwb.blog.51cto.com/5577836/1287887

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved