0

NSString で次のカテゴリを作成しました。

 @interface NSString (Checks)

 -(BOOL) isUppercase;
 -(BOOL) containsStr: (NSString *) str;

 @end;

 @implementation NSString (Checks)

-(BOOL) isUppercase
 { return [[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:[self         characterAtIndex:0]]
 }
 -(BOOL) containstStr: (NSString *) str
 { return [self rangeOfString:str].location != NSNotFound;
 }
@end

メソッド宣言のコンテキストがありません。メソッド本体が必要です。.h ファイルで @end が Objective C コンテキストに表示される必要があります。これはなぜですか?

4

1 に答える 1

0

の後にセミコロンを付けるべきではありません@end。また、Foundation フレームワークを必ずインポートしてください。

#import <Foundation/Foundation.h>

@interface NSString (Checks)

- (BOOL)isUppercase;
- (BOOL)containsStr:(NSString *)str;

@end


#import "NSString+Checks.h"  // or whatever your .h is called.

@implementation NSString (Checks)

- (BOOL)isUppercase {
    return [[NSCharacterSet uppercaseLetterCharacterSet] 
           characterIsMember:[self characterAtIndex:0]];
}

- (BOOL)containsStr:(NSString *)str {
    return [self rangeOfString:str].location != NSNotFound;
}

@end
于 2012-11-18T00:31:50.687 に答える