0

値をNSStringとして返すNSMutableStringを使用してHTMLコードを作成するObjective-Cフレームワークを作成しました。

インターフェースの.hファイルでNSStringとNSMutableStringを宣言しました。

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は単に「(null)」を出力しました。私がそこに書いたコードは次のとおりです。

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

これで十分な情報だといいのですが!

4

3 に答える 3

3

文字列を忘れているとalloc/init思います...

于 2010-05-19T19:55:11.860 に答える
0

あなたのdoThis:メソッドは初期化されていないようですoutputBuilder。したがって、それがnullポインターの場合、何も実行されません。

于 2010-05-19T19:56:05.553 に答える
0

outputBuilderが有効であることを確認してください。どこにいるalloc/initの?

于 2010-05-19T20:07:16.313 に答える