你好,我想做的是从 UITextField 中获取一个 NSString 值,并将该值转换为 int16_t 以将其保存在我的核心数据中,经过数小时的谷歌搜索后,一些人说核心数据无法接受原始数据类型如 int Boolean 等...并且应该接收对象类型如 NSNumber NSInteger 等...这是我的代码:
CoreData *coreDat = [CoreData defaultStack];
numberEntity *entry = [NSEntityDescription insertNewObjectForEntityForName:@"NumberEntity" inManagedObjectContext:coreDat.managedObjectContext]
;
[entry setNumber:(NSNumber *)self.numberTextField.text];
这是实体类:
numberEntity.m
#import "numberEntity.h"
@implementation numberEntity
@dynamic number;
@end
numberEntity.h
#import <Foundation/Foundation.h>
@interface numberEntity : NSObject
@property (nonatomic,strong) NSNumber *number;
@end
我的核心数据是整数 16
由于我的声誉低下,我无法发布图片我很抱歉,我还是 stackoverflow.com 的新手
但是在运行这段代码后我得到了这个异常:
Unacceptable type of value for attribute: property = "number"; desired type = NSNumber; given type = __NSCFString; value = 1.
希望你能帮我忘记提及我在IOS开发方面还是新手,我来自android开发
提前致谢
最佳答案
只需替换这一行 [entry setNumber:(NSNumber *)self.numberTextField.text];到 [entry setNumber:@([self.numberTextField.text intValue])]; .希望它能发挥作用。
关于ios - 将 NSString 转换为 int16_t 并将它们插入到核心数据中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31741581/