Я пытаюсь изучить основы Objective-C с помощью чтения «Learning Objective-C 2.0». Это упражнение по категориям, в котором вас попросили добавить метод к NSString
с помощью использования категорий.Моя простая программа ниже.он (должен) взять строку и затем изменить порядок слов.
Main
#import <Foundation/Foundation.h>
#import "CatNSString.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *test = @"Dog bites Man";
NSString *test1 = nil;
test1 = [test1 reverseWords: test];
NSLog(@"%@ : %@", test, test1);
}
return 0;
}
Интерфейс
#import <Foundation/Foundation.h>
@interface NSString (CatNSString)
- (NSString*) reverseWords:(NSString*)string;
@end
Реализация
#import "CatNSString.h"
@implementation NSString (CatNSString)
- (NSString*) reverseWords: (NSString*) string
{
NSString *stringReturn = nil;
NSArray *arrayString = [string componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
stringReturn = [string stringByAppendingString:@"hello"];
for (NSString *word in arrayString)
{
NSString *stringTmp1 = word;
NSString *stringTmp2 = stringReturn;
stringReturn = [stringTmp1 stringByAppendingString:stringTmp2];
NSLog(@"stringTmp1: %@", stringTmp1);
}
return stringReturn;
}
@end
Компилируется, но программа действует так, как будто метод никогда не вызывается.Если я помещаю вызов NSLog
в методе, вывод на консоль отсутствует.Кто-нибудь может увидеть, что я не делаю, что я должен делать?