NSDictionary 定义了吗?

发布于 2024-11-06 06:10:14 字数 487 浏览 4 评论 0 原文

我有一个 NSDictionary 可能会在循环内设置。在循环结束时,我想查明字典是否已定义。下面是一个例子:

NSDictionary *myDict;

for (int i=0; i < 100; i++){
    if (thisCondition){
        myDict = [NSDictionary dictionaryWithObjectsAndKeys:etc, nil];
    }
}

if (myDict) {
     [self doSomething];
}

不幸的是,无论 myDict 是否已被分配,myDict 的测试每次都会通过。尝试将任何方法传递给 myDict,例如 [myDict count],请给出 exc_bad_access,因为它尚未分配。所以这是一个无人区。

有办法做到这一点吗?我意识到我可以切换到 NSMutableDictionary,定义它,在循环中添加到它,并测试计数,但这不是我的偏好。

I have a NSDictionary that might be getting set inside a loop. At the end of the loop I want to find out if the dictionary has been defined. Here is an example:

NSDictionary *myDict;

for (int i=0; i < 100; i++){
    if (thisCondition){
        myDict = [NSDictionary dictionaryWithObjectsAndKeys:etc, nil];
    }
}

if (myDict) {
     [self doSomething];
}

Unfortunately, the test of myDict passes every time, whether myDict has been alloc'ed or not. Trying to pass any methods to myDict, like [myDict count], give a exc_bad_access because it has not been alloc'ed. So it is kind of a no man's land.

Is there a way to accomplish this? I realize I could switch to a NSMutableDictionary, define it, add to it in the loop, and test for a count, but that is not my preference.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迷爱 2024-11-13 06:10:14

首先,确保将指针初始化为 nil:

NSDictionary *myDict = nil;

否则,对有效指针的检查可能不起作用。

First, make sure you initialize your pointer to nil:

NSDictionary *myDict = nil;

otherwise, your check for a valid pointer may not work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文