@"abc".append(@"def"); // abcdef
@"abc".length; // 3
のような形で、文字列を扱えるようになるカテゴリです。
ブロックを得るgetterを設定していますが、関数の中身まではXcodeで補完できないので、
引数の数などにご注意下さい。
(引数チェックは省いています。)
//
// NSString+LLLikeOperation.h
// M2
//
typedef NSString *(^NSStringReplacer)(NSString *existingString, NSString *newString);
typedef NSString *(^NSStringAppender)(NSString *aString);
@interface NSString (LLLikeOperation)
@property (readonly) NSUInteger length;
@property (readonly) NSStringReplacer replace;
@property (readonly) NSStringAppender append;
@end
//
// NSString+LLLikeOperation.m
// M2
//
#import "NSString+LLLikeOperation.h"
@implementation NSString (LLLikeOperation)
@dynamic length;
- (NSStringReplacer)replace
{
NSStringReplacer replacer = ^NSString*(NSString *existingString, NSString *newString) {
return [self stringByReplacingOccurrencesOfString:existingString withString:newString];
};
return replacer;
}
- (NSStringAppender)append
{
NSStringAppender appender = ^NSString*(NSString *aString) {
return [self stringByAppendingString:aString];
};
return appender;
}
@end
0 件のコメント:
コメントを投稿