У меня есть пара классов, которые имеют почти идентичный код. Между ними существует только строка или две. То, что я хотел бы сделать, это сделать их «х» из другого класса, который определяет эти функции, а затем использует константы или что-то еще, чтобы определить те строки, которые отличаются. Я не уверен, что «x» является наследованием или расширением или чем-то. Вот с чем мне нужна помощь.Протокол Objective-C против наследования и расширения?
Например:
objectA.m:
-(void)helloWorld {
NSLog("Hello %@",child.name);
}
objectBob.m:
#define name @"Bob"
objectJoe.m
#define name @"Joe"
(я не уверен, если легально определять строки, но это получает e point through)
Было бы идеально, если бы объектBob.m и objectJoe.m не должны были даже определять методы, просто их отношение к объекту. Есть ли способ сделать что-то подобное? Это своего рода протокол, за исключением наоборот, я хочу, чтобы «протокол» фактически определял функции.
Если все остальное терпит неудачу, я просто сделать objectA.m:
-(void)helloWorld:(NSString *name) {
NSLog("Hello %@",name);
}
И есть другие файлы вызова этой функции (и только #import objectA.m
).
+1 кроме того, что он будет называться «имя» по стандарту именования какао. –
Методы get-метода Objective-C не используют слово 'get'. Это будет просто «само имя». Методы, начинающиеся с 'get', указывают, что заполняется какой-то заполненный буфер или извлекается удаленный ресурс. – Chuck
Похоже, что все будет хорошо. Может ли/я должен соединить это с протоколом, который определяет функции, которые необходимы базовому классу (например, имя)? На самом деле, нужно ли «имя» быть методом или есть способ сделать его константой для подкласса? – RyanJM