#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{