NSMutableDictionaryのキーとしてUIViewタグを使用したいと思います。ただし、コンパイラはNSIntegerをキーとして使用することに反対します。私は次のことをしたい:
NSInteger elementKey = _viewBeingDragged.tag;
myClass* element = [_model.elements objectForKey:elementKey];
elementKeyを辞書キーとして使用するにはどうすればよいですか?
NSMutableDictionaryのキーとしてUIViewタグを使用したいと思います。ただし、コンパイラはNSIntegerをキーとして使用することに反対します。私は次のことをしたい:
NSInteger elementKey = _viewBeingDragged.tag;
myClass* element = [_model.elements objectForKey:elementKey];
elementKeyを辞書キーとして使用するにはどうすればよいですか?
ANSIntegerはオブジェクトではないため、キーとして使用することはできません。代わりにそれをラップすることができますNSNumber:
NSNumber* elementKey = [NSNumber numberWithInt:_viewBeingDragged.tag];
myClass* element = [_model.elements objectForKey:elementKey];
@Marioと@EvanMulawskiの両方に同意しますが、キーに文字列を使用することを好みます。ああ、そしてコンパイラがanの使用を拒否する理由NSIntegerは、NSIntegersがsとほとんど同じであるということlong intです。
NSString* elementKey = [NSString stringWithFormat:@"%i",_viewBeingDragged.tag];
//or NSNumber* elementKey = [NSNumber numberWithInt:_viewBeingDragged.tag];
myClass* element = [_model.elements objectForKey:elementKey];
NSNumber* elementKey = [NSNumber numberWithInt:_viewBeingDragged.tag];
NSNumber文字通りに包みます。
myClass* element = _model.elements[@(_viewBeingDragged.tag)];
そして割り当て:
NSInteger tag = view.tag;
myClass *value;
_model.elements[@(tag)] = value;
NSCopying準拠オブジェクトを使用できますが、キーのNSStringを作成します。
NSString *key = [NSString stringWithFormat: @"%d",elementKey];