0

カテゴリの問題があります:「NSString」の表示された@interfaceがセレクター「isUrl」で宣言されていません

NSString + NSString.h

#import <Foundation/Foundation.h>
@interface NSString (NSString)
- (BOOL)isUrl;
@end

NSString + Nsstring.m

#import "NSString+NSString.h"

@implementation NSString (NSString)

- (BOOL) isUrl {
    if ([self hasPrefix:@"http://"]) {
        return YES;
    } else {
        return NO;
    }
}
@end

ViewController.m

#import "ViewController.h"
#import "NSString+NSString.h"
@implementation ViewController
    - (void)viewDidLoad
    {
        [super viewDidLoad];
            NSString* string1 = @"http://apple.com/"; 
            NSString* string2 = @"Apple";
            if ([string1 isURL]) {  // **Here is an error** 
                NSLog (@"string1 is URL");  
            }
            if ([string2 isURL]) { // **And here**
                NSLog (@"string2 is NOT URL"); 
            }
    }

私が間違っているのは何ですか?

4

1 に答える 1

3

isURLと同じではありませんisUrl:)

カテゴリでメソッドを呼び出しましたが、コードでisUrl呼び出されたメソッドを使用しようとしていisURLます。


何かがURLであるかどうかをiOSにテストさせたほうがいいですが-

-(BOOL)isURL {
    return nil != [NSURL URLWithString:self];
}
于 2012-08-01T12:42:23.107 に答える