Objective c 当这个NSDictionary调用initWithArray时,为什么它包含0个对象?

Objective c 当这个NSDictionary调用initWithArray时,为什么它包含0个对象?,objective-c,ios,Objective C,Ios,我正在写一个应用程序来复习拉丁语动词的变化,但我遇到了一个障碍。我创建了一个尾端数组,但是当我尝试用这些尾端初始化NSDictionary时,dictionary的计数始终为0。我做错了什么 这是BlackBox.h: #import <Foundation/Foundation.h> @interface BlackBox : NSObject @property (weak) NSDictionary *setOfEndings; - (void)determineEndi

我正在写一个应用程序来复习拉丁语动词的变化,但我遇到了一个障碍。我创建了一个尾端数组,但是当我尝试用这些尾端初始化
NSDictionary
时,dictionary的
计数始终为0。我做错了什么

这是
BlackBox.h

#import <Foundation/Foundation.h>

@interface BlackBox : NSObject

@property (weak) NSDictionary *setOfEndings;

- (void)determineEndingsToUse;

@end

有什么想法吗?

由于setOfEndings是一个弱指针,它将立即被释放,因为没有对已分配词典的强引用

您可以通过将“引用”更改为“强”或按以下方式进行更改使其正常工作:

 NSDictionary *dict = [[NSDictionary alloc] initWithObjects:endingsPossible forKeys:keys];
 self.setOfEndings = dict;

//By default dict is a strong reference to the allocated dictionary.

您是否尝试过通过检查调试器是否处于if状态来进行调试?或者执行了字典分配行,或者没有执行。您是否尝试创建对NSDictionary对象的强引用?将其设置为非原子也可能是一个好主意,尽管与您的特定情况无关。非常感谢您——做到了!现在当然还有其他问题,但这是一个新问题。。。。
 NSDictionary *dict = [[NSDictionary alloc] initWithObjects:endingsPossible forKeys:keys];
 self.setOfEndings = dict;

//By default dict is a strong reference to the allocated dictionary.