2012-08-01 1 views
0

J'ai problème Catégorie: Non @interface visible 'NSString' déclare dans le sélecteur 'isUrl'erreur avec Catégories iPhone

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"); 
      } 
    } 

Qu'est-ce que je fais mal?

Répondre

3

isURL est pas le même que isUrl :)

Vous avez appelé votre méthode dans la catégorie isUrl mais vous essayez d'utiliser une méthode appelée isURL dans votre code.


Bien que vous êtes mieux laisser tester iOS si quelque chose est une URL ou non -

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

facepalm .. merci beaucoup! –

Questions connexes