创建NSString类的扩展

时间:2014-02-23 14:09:57

标签: ios iphone ipad

我正在创建NSString类的扩展。我宣布了这个

@implementation NSString (Extensions)

+ (NSString *)extractNumbersFromString {

  return [[self componentsSeparatedByCharactersInSet:
           [[NSCharacterSet decimalDigitCharacterSet] invertedSet]]
          componentsJoinedByString:@""];

}

我有这样的错误:“没有已知的选择器组件的类方法SeparatedByCharactersInSet”

为什么呢?如果这个选择器是NSString的一部分而我正在扩展它,我不明白这个错误...

1 个答案:

答案 0 :(得分:1)

componentsSeparatedByCharactersInSet:是一个实例方法,而不是类方法。您试图在类方法中调用它,因此没有消息应该发送到的实例。

因此,消息被发送到它认为是名为componentsSeparatedByCharactersInSet:的类方法,该方法不存在 - 因此错误。

要解决此问题,请将扩展程序的签名更改为:

- (NSString *)extractNumbersFromString