Как преобразовать NSMutableString в NSString при использовании Frameworks? - PullRequest
0 голосов
/ 19 мая 2010

Я написал оболочку Objective-C, которая создает HTML-код с NSMutableString, который возвращает значение в виде строки NSString.

Я объявил NSString и NSMutableString в файле inteface .h:

NSString *_outputLanguage;        // Tests language output
NSMutableString *outputBuilder;
NSString *output;

Это пример из кода .m реализации фреймворка (я не могу напечатать реальный код, так как он проприетарный):

-(NSString*)doThis:(NSString*)aString num:(int)aNumber {
if ([outputBuilder length] != 0) {
    [outputBuilder setString:@""];
}
if ([_outputLanguage isEqualToString:@"html"]) {
    [outputBuilder appendString:@"Some Text..."];
    [outputBuilder appendString:aString];
    [outputBuilder appendString:[NSString stringWithFormat:@"%d", aNumber]];
}
else if ([_outputLanguage isEqualToString:@"xml"]) {
    [outputBuilder appendString:@"Etc..."];
}
else {
    [outputBuilder appendString:@""];
}
output = outputBuilder;
return output;
}

Когда я писал текстовую программу, NSLog просто распечатывал «(ноль)». Код, который я там написал, был:

TheClass *instance = [[TheClass alloc] init];
NSString *testString = [instance doThis:@"This String" num:20];
NSLog(@"%@", testString);
[instance release];

Надеюсь, этой информации достаточно!

Ответы [ 3 ]

3 голосов
/ 19 мая 2010

Я предполагаю, что вы забыли alloc/init свои строки ...

0 голосов
/ 20 мая 2010

Убедитесь, что outputBuilder действительно. Где ты это делаешь?

0 голосов
/ 19 мая 2010

Ваш doThis: метод, похоже, не инициализирует outputBuilder. Так что, если это нулевой указатель, с ним ничего не будет сделано.

...