gpt4 book ai didi

IOS/objective-C : Build NSDictionary from NSManagedObject

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

我正在尝试从 NSManagedObject 构建 NSDictionary。我的印象是你可以这样做: NSMutableDictionary *myDict; [myDict setObject:self.title forKey:@"title"];

因为字典不能包含 nil 值,所以我首先测试 nil。但是,当我使用中断验证属性是否具有值时,当我构建字典时它为零。它使用断点显示为 nil,并以 NULL 形式记录到控制台。希望有人确认以下是创建字典的有效方法,如果是这样,为什么字典会是零?

NSString *title = @"Test";
NSNumber *complete = @1;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *lasttouchedstr =[dateFormatter stringFromDate:[NSDate date]];

NSMutableDictionary *myDict;
if (self.title.length>=1) {
[myDict setObject:self.title forKey:@"title"];
}
if (![self.complete isKindOfClass:[NSNull class]]) {
[myDict setObject:self.complete forKey:@"complete"];
}
if (![self.lasttouched isKindOfClass:[NSNull class]]) {
[myDict setObject:lasttouchedstr forKey:@"lasttouchedstr"];
}
NSLog(@"myDict is:%@",myDict)//Logs as NULL
return myDict;

提前感谢您的任何建议。

最佳答案

NSMutableDictionary *myDict; 声明值但不初始化它。你需要

NSMutableDictionary *myDict = [[NSMutableDictionary alloc] init];

其次,托管对象不会为其任何属性返回 NSNull 值。您需要检查 != nil 。参见 here为了很好地解释 null 和 nils 之间的区别。

关于IOS/objective-C : Build NSDictionary from NSManagedObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51252978/

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