Проблема с вызывающей функцией

#iphone #objective-c #ios #xcode

#iPhone #objective-c #iOS #xcode

Вопрос:

У меня есть следующий метод, используемый для исправления пустых значений в Json

  (NSString *)CorrectJsonForEmptyValues:(NSString *)pasRawJson
{

    NSLog(@"CorrectJsonForEmptyValues");
    NSMutableString *tmpJson = [pasRawJson mutableCopy];

    [tmpJson replaceOccurrencesOfString:@"[,"
                             withString:@"[{"v": "N/A","f":"N/A"},"
                                options:0
                                  range:NSMakeRange(0, [tmpJson length])];

    [tmpJson replaceOccurrencesOfString:@",,"
                             withString:@",{"v": "N/A","f":"N/A"},"
                                options:0
                                  range:NSMakeRange(0, [tmpJson length])];

    NSString *correctedJson=tmpJson;
    return correctedJson;
}
  

Вызвал функцию следующим образом

 result = [self performSelector:@selector(CorrectJsonforEmptyvalues:) withObject:result];
  

Но при получении ошибки

  2011-11-11 11:11:33.217 HelloWorld10[38833:207] -[Data CorrectJsonforEmptyvalues:]: unrecognized selector sent to instance 0x5725cc0
 2011-11-11 11:11:33.219 HelloWorld10[38833:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Data CorrectJsonforEmptyvalues:]: unrecognized selector sent to instance 0x5725cc0'
  

Если кто-нибудь может, пожалуйста, предоставить решение, это будет полезно.
Заранее спасибо.

Ответ №1:

Вы объявили CorrectJsonForEmptyValues: как метод класса, начав его объявление / определение с вместо - . Следовательно, вы вызываете ее для объекта класса, а не для экземпляра класса. Например, если у вашего класса есть имя Data , вы вызываете его следующим образом:

 result = [Data CorrectJsonForEmptyValues:result];
  

Кстати, вы не должны начинать имена методов с заглавных букв.

Ответ №2:

Вы можете вызвать функцию следующим образом

         [self CorrectJsonForEmptyValues:result];
  

И замените ‘ ‘ в следующем на ‘-‘

      (NSString *)CorrectJsonForEmptyValues:(NSString *)pasRawJson{