类别iPhone出错

时间:2012-08-01 12:39:01

标签: iphone xcode objective-c-category

我有类别问题:'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"); 
            }
    }

我做错了什么?

1 个答案:

答案 0 :(得分:3)

isURLisUrl不同:)

您已在类别isUrl中调用了方法,但您尝试在代码中使用名为isURL的方法。


虽然你最好让iOS测试一下是否是某个URL -

-(BOOL)isURL {
    return nil != [NSURL URLWithString:self];
}