gpt4 book ai didi

objective-c - 为什么这个 NSSet 成员方法不起作用?

转载 作者:行者123 更新时间:2023-12-03 16:29:12 24 4
gpt4 key购买 nike

我有一个 NSSet ,其中包含 @"x" ,我正在尝试使用实例方法 member: 来检查对于它,就像这样:

NSSet *everythingOnStack = [[NSSet alloc] initWithObjects:program, nil];
NSSet *variablesOnStack = [[NSSet alloc] initWithObjects:([everythingOnStack member:@"x"]),nil];

NSLog(@"Variables on, %@",variablesOnStack);
NSLog(@"Everything on stack,%@",everythingOnStack);

member: 方法似乎看不到 @"x",我不确定为什么。下面是 NSLog() 输出。我阅读了文档,看起来它应该可以工作。使困惑。

2012-05-21 20:43:07.902 Calculator[21589:f803] Variables on, {(
)}
2012-05-21 20:43:07.904 Calculator[21589:f803] Everything on stack,{(
(
1,
2,
x,
"+"
)
)}

我正在通过斯坦福在线类(class)学习 Objective C。

最佳答案

字符串@"x"不是everythingOnStack的成员。它是任何类型的program集合的成员(看起来像一个数组)。当你执行 [everythingOnStack member:@"x"] (顺便说一句,括号是不必要的)时,你会得到 nil ,所以你最终会得到一个空集对于variablesOnStack

为了从 everythingOnStack 中获取 @"x",您必须将其从 program 数组中获取:

[[everythingOnStack member:program] objectAtIndex:3]

请注意,这要求您知道所需的对象在数组中的位置。我不确定这会如何影响您的设计——看起来您可能正在实现 RPN 计算器?

关于objective-c - 为什么这个 NSSet 成员方法不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10694856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com