你好我要做的是从UITextField获取NSString值并将此值转换为int16_t以将其保存在我的核心数据中经过一段时间的谷歌搜索后,一些堆栈的人说核心数据无法接受原始数据类型如 int 布尔等...并且应该接收对象类型,例如 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的新手
但在运行此代码后,我遇到了这个例外:
属性的值不可接受的类型:property =“number”;所需类型= NSNumber;给定type = __NSCFString;值= 1。
希望你能帮助我忘记提及我仍然是IOS开发的新手,我来自android开发
提前致谢
答案 0 :(得分:1)
只需替换此行[entry setNumber:(NSNumber *)self.numberTextField.text]; to [entry setNumber:@([self.numberTextField.text intValue])];希望它的工作。