0

他のいくつかのプロジェクトで問題なく使用したコードを使用しています。突然、同じコードを使用するとランダムなエラー メッセージが表示されますが、特定の 1 つのプロジェクトでのみ発生します。

このコードは、他のいくつかのプロジェクトで完全に実行されました。

@implementation MyClass

static NSMutableDictionary *elements;

+(void) initialize {
    if (!elements)
        elements = [NSMutableDictionary new];
}

+(void) MyFunction: (some parameters) {
    NSString *class_name = NSStringFromClass([self class]);
    NSMutableArray *elementList = [elements valueForKey: class_name];
}

何かが変更され、[elements valueForKey:] 呼び出しで次のエラー メッセージが生成されるようになりました。

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: NSCFString encodeBytes:length:forKey: unrecognized selector sent to instance

実際にはそれよりも奇妙になります。+(void) 初期化を実行すると、要素が nil として開始され、予想どおり NSMutableDictionary に設定されていることがわかります。ただし、そのインスタンスが作成された直後でも、[elements valueForKey: [any NSString]] を呼び出すと、「NSCFString encodeBytes」が認識されないセレクターであるという同じエラーが発生します。

(編集/解決済み): デバッガーは実際にはコードについてまったく文句を言っていませんでした。プロジェクトのブレークポイントの Xcode のリストを削除すると、すべてが改善されました。

4

1 に答える 1

0

デバッガーは、実際にはコードについてはまったく文句を言っていませんでした。むしろ、ブレークポイント: 以前にそこに配置されたブレークポイントを見つけることができないということについての何かでした。プロジェクトのブレークポイントの Xcode のリストを削除すると、すべてが改善されました。

于 2013-01-22T17:16:22.990 に答える