gpt4 book ai didi

ios - iOS 中的数字格式问题

转载 作者:行者123 更新时间:2023-11-28 22:18:56 25 4
gpt4 key购买 nike

在我的 iOS 应用程序中,我尝试在应用程序第一次执行时填充核心数据存储。我在我的 AppDelegate.m 文件中使用了以下代码,我将作为示例展示我如何创建实体的一个对象:

     //creating new managedObject

NSManagedObject *favoriteThing = [NSEntityDescription insertNewObjectForEntityForName:@"FavoriteThing" inManagedObjectContext:[self managedObjectContext]];


//extracting year,month and day from current date

todayDate = [NSDate date];
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit fromDate:todayDate]; // Get necessary date components

//converting components
NSNumber *yearBuscado = [NSNumber numberWithLong:[components year]];
NSNumber *mesBuscado = [NSNumber numberWithLong:[components month]];
NSNumber *diaBuscado = [NSNumber numberWithLong:[components day]];

//populating managedObject

[favoriteThing setValue:@"If done, swipe to right " forKey:@"thingName"];//String
[favoriteThing setValue:[NSNumber numberWithInt:10] forKey:@"displayOrder"];//Integer32
[favoriteThing setValue:[NSNumber numberWithInt:yearBuscado] forKey:@"todoYear"];//Integer32
[favoriteThing setValue:[NSNumber numberWithInt:mesBuscado] forKey:@"todoMonth"];//Integer32
[favoriteThing setValue:[NSNumber numberWithInt:diaBuscado] forKey:@"todoDay"];//Integer32
[favoriteThing setValue:@"Urgent" forKey:@"urgent"];//String
[favoriteThing setValue:@"Yellow" forKey:@"color"];//String
[favoriteThing setValue:@"Not deleted" forKey:@"isSemiDeleted"];//String
[favoriteThing setValue:@"Not done" forKey:@"isDone"];//String

这是第一次启动应用程序后存储的内容(从 SQLite 管理器中提取): enter image description here

我需要的是存储今天(2014-01-04)的预期值:

todoYear = 2014
todoMonth = 1
todoDay = 4

这三个属性来自类型Integer 32我究竟做错了什么?感谢您的宝贵时间。

最佳答案

您错误地使用 NSNumber 对象调用 numberWithInt,而是直接使用该 NSNumber 调用 setValue

todayDate = [NSDate date];        
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit fromDate:todayDate]; // Get necessary date components

//converting components
NSNumber *yearBuscado = [NSNumber numberWithInteger:[components year]];
NSNumber *mesBuscado = [NSNumber numberWithInteger:[components month]];
NSNumber *diaBuscado = [NSNumber numberWithInteger:[components day]];

[favoriteThing setValue:yearBuscado forKey:@"todoYear"];//Integer32
[favoriteThing setValue:mesBuscado forKey:@"todoMonth"];//Integer32
[favoriteThing setValue:diaBuscado forKey:@"todoDay"];//Integer32

此外,您还可以从 CoreData 模型生成模型类。这样您就可以通过 PropertiesNSManagedObject 设置值,而不是进行键值编码。

喜欢

FavoriteThing *favoriteThing = [NSEntityDescription insertNewObjectForEntityForName:@"FavoriteThing" inManagedObjectContext:[self managedObjectContext]];
[favoriteThing setBuscado: yearBuscado];

关于ios - iOS 中的数字格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20930022/

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