Ios 将NSArray转换为NSDictionary-错误

Ios 将NSArray转换为NSDictionary-错误,ios,objective-c,nsdictionary,Ios,Objective C,Nsdictionary,我正在尝试使用我在本文中找到的代码将NSArray转换为NSDictionary: 但是,[self get objects:array objects,…]行中有一个错误,消息是:发送“NSString\u strong到类型为_unsafe\u unrepaired id*的参数”更改指针的保留/释放属性。我想这是因为ARC的问题,因为帖子是在2009年发布的。 有人知道如何解决这个问题吗?谢谢。解决方案与上面Ranju Patel给出的链接几乎相同: __unsafe_unretaine

我正在尝试使用我在本文中找到的代码将NSArray转换为NSDictionary:

但是,[self get objects:array objects,…]行中有一个错误,消息是:发送“NSString\u strong到类型为_unsafe\u unrepaired id*的参数”更改指针的保留/释放属性。我想这是因为ARC的问题,因为帖子是在2009年发布的。
有人知道如何解决这个问题吗?谢谢。

解决方案与上面Ranju Patel给出的链接几乎相同:

__unsafe_unretained id arrayObjects[arrayCount];
id objectKeys[arrayCount];
[self getObjects:arrayObjects range:NSMakeRange(0UL, arrayCount)];
因为getObject:range:声明为

- (void)getObjects:(id __unsafe_unretained [])objects range:(NSRange)range;
原因是ARC无法管理普通C数组中对象的生存期, 因此,必须将对象声明为“不安全”或“未恢复”。 转换项目时的常见问题中也解释了这一点
在。

中,什么是[自我计数]??自己是否通过NSLog在控制台中显示它?创建一个字典的好处是什么?它的键就是索引?我看不到任何内容。我尝试了pastebin链接,但这一行仍然有错误:[self-getObjects:arrayObjects-range:NSMakeRange0UL,arrayCount];谢谢,很有魅力。。
- (void)getObjects:(id __unsafe_unretained [])objects range:(NSRange)range;