Это может быть очень простая ошибка, но мои глаза практически кровоточат от попыток выследить ее. Сначала я думал, что ARC может играть роль, но теперь он полностью отключен, и я все еще получаю ошибку.
У меня есть протокол UMLLanguageProtocol, который определяет статический метод
+(NSArray *)methodFormatComponents;
Я пытаюсь вызвать этот метод внутри функции, но он не распознается Xcode («неизвестный селектор метода класса»).
Вот код, в котором я пытаюсь его использовать:
#import "UMLLanguageProtocol.h"
@implementation UMLMethod
@dynamic documentation;
@dynamic name;
@dynamic umlClass;
+(void)validPortionOfMethod:(NSString *)method inLanguage:(Class<UMLLanguageProtocol>)language {
[language methodFormatComponents]; <-- Error: No known class method selector
}
@end
и сам протокол, определенный в UMLLanguageProtocol.h
#import <Foundation/Foundation.h>
#define VISIBILITY_SPECIFIER_COUNT 6
@class UMLMethod;
@class UMLAttribute;
@class UMLParameter;
typedef enum {
PUBLIC,
PRIVATE,
PROTECTED,
PACKAGE,
DERIVED,
STATIC
} visibility;
@protocol UMLLanguageProtocol
/*
* Language Specifiers
*/
+(NSArray *)nativeDataTypes;
// Return a 6 item array with YES if the language supports that visibility
// specifier at the given index, and no if it doesn't.
+(NSArray*)visibilitySpecifiersForVariables;
+(NSArray*)visibilitySpecifiersForMethods;
/*
* Parsing Methods
*/
// Returns a regex string that defines a validly formatted method
+(NSString *)methodFormat;
+(NSArray *)methodFormatComponents;
@optional
+(NSString*)documentationCommentFromText:(NSString*)comment;
+(NSString*)scaffoldTextFromMethod:(UMLMethod*)method;
+(NSString*)scaffoldTextFromParameter:(UMLParameter *)parameter;
+(NSString*)scaffoldTextFromAttribute:(UMLAttribute*)attribute;
+(NSArray *)additionalCommonDataTypes;
+(NSString *)defaultRootObject;
@end
Серьезно, я теряю волосы, когда пишу это ... пожалуйста, помогите!
ОБНОВЛЕНИЕ: На самом деле, похоже, что ошибка состоит из двух частей в навигаторе ошибок. Первая часть - «Проблема с автоматическим подсчетом ссылок», а вторая строка - «Не известен метод класса для селектора». Странно, что это может иметь отношение к ARC?!