我正在尝试访问我的字典对象.这是我的代码:
int tag = object.tag;
CGPoint point = [[self.dict objectForKey:tag] CGPointValue];
Run Code Online (Sandbox Code Playgroud)
问题是objectForKey应该采用Objective-C对象,而不是int.我尝试将标记包装到NSNumber中[NSNumber numberWithInt:tag]并将其传递给objectForKey:但是它返回一个空对象.
有任何想法吗?谢谢
bne*_*ely 14
如果您使用数字作为字典键的字符串,则应将其int转换为a NSString或NSNumber将其用作字典键.以下是如何为字符串执行此操作:
NSString *key = [NSString stringWithFormat:@"%d", myInteger];
Run Code Online (Sandbox Code Playgroud)
正如@Hughes BR在评论中提到的那样,关键对象的要求是它必须符合NSCopying协议.
我使用NSNumbers没有问题,但必须避免通常setObject: forKey:或setValue: forKey:方法.这会产生警告.
但是,没有创建警告(并且代码按预期工作)
NSMutableDictionary *myDict = [[NSMutableDictionary alloc] init];
NSNumber *key = @1;
id *myObject = [your code here];
myDict[key] = myObject;
Run Code Online (Sandbox Code Playgroud)
检索很简单:
myObject = myDict[key];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12942 次 |
| 最近记录: |