将NSString转换为int16_t并将它们插入核心数据中

时间:2015-07-31 08:29:55

标签: ios objective-c iphone core-data

你好我要做的是从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开发

提前致谢

1 个答案:

答案 0 :(得分:1)

只需替换此行[entry setNumber:(NSNumber *)self.numberTextField.text]; to [entry setNumber:@([self.numberTextField.text intValue])];希望它的工作。