0

スタンフォード クラス CS193P、iPhone プログラミングの 2010 年秋バージョンに取り組んでいます。課題 2 では、課題 1 で作成した電卓アプリを改善しています。ほぼ完成したようですが、インターフェイスにある変数 (これらの目的では "x") を押そうとするとアプリがクラッシュします。

限られたデバッグ スキルを使用して、問題を突き止めることができました。問題はメソッド「(NSSet)variablesInExpression:(id)anExpression」にあります。

+ (NSSet *)variablesInExpression:(id)anExpression
{
NSMutableSet *setOfVariables = [[NSSet alloc] init];
for (NSString *str in anExpression) {
    if ([str hasPrefix:VARIABLE_PREFIX]) {
        [setOfVariables addObject:str];
    }
}
[setOfVariables autorelease];
return setOfVariables;
}

ラインに着いたら

[setOfVariables addObject:str]; 

アプリがクラッシュします。私は数時間それを理解しようとしてきました、助けてください!XCode で「anExpression」の値のリスト全体を表示する方法はありますか?

4

1 に答える 1

1

変数を可変セットとして宣言しますが、不変の NSSet クラスのインスタンスを作成します。NSMutableSet インスタンスを作成する必要があります。

NSMutableSet *setOfVariables = [[NSMutableSet alloc] init];
于 2012-04-29T21:24:48.847 に答える