gpt4 book ai didi

iphone - 核心数据没有正确保存整数?从 NSString 更改为 int 时

转载 作者:行者123 更新时间:2023-12-01 17:34:22 26 4
gpt4 key购买 nike

我在我的应用程序上使用 Core data 没问题,

我在保存一个应该是整数的数字时遇到问题...当我从核心数据中获取它时,它显示奇怪的数值

我知道这是有效的,因为通过测试,我的 idTosave = 345,它显示在 CoreData 的结果上,但是当发送一个值 [string to int] 时,我知道它在记录正确的响应时正在唤醒,CD 保存一个奇怪的值:

(请注意我保存到实体 idRef)

NSLog(@"resultToDisplay:: %@", self.resultsToDisplay);

// int idToSave = 345; //if I use this line instead of intValue it saves 345 OK!
int idToSave = (int)[self.resultsToDisplay intValue];


NSLog(@"id salvada as NSINTEGER:: %d",idToSave);



//graba a CD!
[Student insertWithDataQR:[studentDataDicto objectForKey:@"name"] surname:[studentDataDicto objectForKey:@"surname"]
phone:[studentDataDicto objectForKey:@""]
dob:[studentDataDicto objectForKey:@"dob"] idRef:idToSave ...]];

[[Student defaultManagedObjectContext]save:nil];

退出:

 resultToDisplay:: 1329955200
2012-02-26 00:36:08.597 MyGym_iPad[10867:707] id salvada as NSINTEGER:: 1329955200

注意值 1329955200,在保存前正确显示为整数和字符串,

并检查我所做的响应:

  NSArray *studiantes = [Student all];


for ( Student *tud in studiantes) {
NSLog(@"tu %@ ...%@",tud.studentName, tud.idRef );
}

所以,对于 int 345,我在日志中看到tu.idRef == 345

但使用字符串中的整数,我在日志中看到tu.idRef == -32384

因此,如果我从转为 int 的字符串中保存,我会得到响应:-32384

编辑:

我已将生成的核心数据类管理器文件子类化,以将 idRef 保存为 NSNumber

    studentData.idRef = [NSNumber  numberWithInt:idRef];

编辑x2

检查我做的日志:

NSArray *studiantes = [Student all];


for ( Student *tud in studiantes) {
NSLog(@"tu %@ ...%d",tud.studentName, [tud.idRef intValue]);
}

但结果是:-32384 ,, 当从字符串中保存时,我的值转换为 int

但是正确的值345,,当直接发送一个int时,

最佳答案

你必须把它放在一个 NSNumber 中:

NSNumber *idToSave = [NSNumber numberWithInteger:[self.resultsToDisplay integerValue]];

编辑

实际上我们已经达到最大值,用整数 32 字段求解。

关于iphone - 核心数据没有正确保存整数?从 NSString 更改为 int 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9444534/

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