【问题标题】:convert NSString to int16_t and insert them inside core data将 NSString 转换为 int16_t 并将它们插入核心数据中
【发布时间】:2015-10-22 20:41:11
【问题描述】:

你好,我想做的是从 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 的新手

但是在运行这段代码后我得到了这个异常:

不可接受的属性值类型:property = "number";所需类型 = NSNumber;给定类型 = __NSCFString;值 = 1。

希望你能帮我忘记提及我还是IOS开发的新手,我来自android开发

提前致谢

【问题讨论】:

  • 需要将文本解析成数字。例如[NSNumber numberWithInteger:[self.numberTextField.text intValue]]。然后可以将其用作值。

标签: ios objective-c iphone core-data


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-29
    • 2012-10-12
    • 2016-01-05
    • 2012-02-19
    • 2011-10-20
    • 2019-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多