私はこの次のコードを持っています:
NSAssert(dst, @"sdiasiosadiodasio");
// Add to a list so that we don't lose the references
[layersToDsts setObject:dst forKey:layer];
NSLog(@"The key is %lu", layer);
for (Bit *layer in [layersToDsts allKeys])
{
BitHolder *dst = [layersToDsts objectForKey:layer];
NSLog(@"My added key is %lu", layer);
NSAssert(dst, @"ddddd");
}
layerToDsts は可変NSDictionary
です。オブジェクトのアドレスをキーとして使用して、別のオブジェクトにマッピングしようとしています。
コードは iOS 5 で動作しました。何らかの理由で、コードは
The key is 484196128
My added key is 484253328
Assertion failure in -[Animator animateImpl:] 'NSInternalInconsistencyException', reason: 'ddddd'
明らかに、辞書に追加したオブジェクトは取得できません。オブジェクトは nil ではありません。マッピングキーが別のアドレスであるのはなぜですか?? コードはiOS 5で完全に機能しました....