おい。ファイルから文字列を読み込んで、結果の文字列を使用して、KVC メソッドを使用してオブジェクトに BOOL プロパティを設定しようとしています-setValue:forKeyPath:
。ただし、これは例外で壊れます: -[NSCFString charValue]: unrecognized selector sent to instance 0x7fff711023b0
. これは、BOOLがcharからtypedefされているためだと思います。これを回避する方法はありますか?ありがとう!
1708 次
3 に答える
3
KVC を使用してプロパティを設定する場合BOOL
、オブジェクトを渡す必要がありNSNumber
ます。あなたの場合にできることは pass[NSNumber numberWithBool:[myString boolValue]]
です。これでクラッシュが修正されるはずです。
于 2010-09-07T22:37:43.173 に答える
3
例外をキャッチし、その名前を確認してから、必要に応じてラップされた値で再試行しています。コードは次のとおりです。
@try
{
[(NSObject*)retObj setValue:[[obj keyValuePairs] objectForKey:key]
forKeyPath:key];
}
@catch (NSException * e)
{
if ([[e name] isEqualToString:NSInvalidArgumentException])
{
NSNumber* boolVal = [NSNumber numberWithBool:[[[obj keyValuePairs] objectForKey:key] boolValue]];
[(NSObject*)retObj setValue:boolVal
forKeyPath:key];
}
}
とにかくありがとう!
于 2010-09-08T01:12:44.767 に答える