gpt4 book ai didi

ios - valueForKey 没有返回正确的值

转载 作者:行者123 更新时间:2023-11-29 03:34:55 25 4
gpt4 key购买 nike

在我的应用程序中有一个名为“selectedItems”的 NSDictionary,它包含键“Order”。该值可以由用户更改。NSDictionary lokks 的定义如下:

self.selectedItems = [NSMutableDictionary dictionaryWithObjects:@[self.choosedAttributes, @"Reihennfolge"] forKeys:@[@"Sorted by" ,@"Order"]];

我需要设置一个 BOOL 值,我可以像这样轻松设置值

[self.selectedItems setValue:[NSNumber numberWithBool:NO] forKey:@"Order"];

在此操作之后,值被转移到另一个 ViewController,我想在其中读取值。

NSSortDescriptor *mySortDesc = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:(Boolean)[stvc.selectedItems valueForKey:@"Order"]];

这失败了。值 [stcv.selectedItems valueForKey:@"Order"] 是正确的(一个 NSLog 告诉我)但是对 GUI 没有影响(按名称升序或降序排列人员)。但是,如果我键入一个静态数字或常量,如 YES 或 NO...,它就可以工作。但是值(value)真的是一样的。这是行不通的。有人可以帮帮我吗?

最佳答案

[stvc.selectedItems valueForKey:@"Order"] 返回一个(指向)NSNumber 对象。如果您只是将其转换为 bool 标量,结果将始终为“true”,因为指针不为 NULL。

你必须使用

... ascending:[[stvc.selectedItems valueForKey:@"Order"] boolValue] ...

相反。

备注:最好使用objectForKeysetObjectForKey来访问字典键。valueForKey 用于键值编码技巧。

更好:使用新语法(此处记录:http://clang.llvm.org/docs/ObjectiveCLiterals.html)

stvc.selectedItems[@"Order"] = @NO;

NSSortDescriptor *mySortDesc = [[NSSortDescriptor alloc] initWithKey:@"firstName"
ascending:[stvc.selectedItems[@"Order"] boolValue]];

关于ios - valueForKey 没有返回正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19317522/

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