• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ios > 使用CoreData,对实体的基本类型属性赋值时出错

使用CoreData,对实体的基本类型属性赋值时出错

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了coredata,ios coredata,coredata数据库,coredata是什么,ios coredata 使用等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 使用CoreData,对实体的基本类型属性赋值时出错
描述:

情形如下:一个用于记录工作任务的表,每条记录是一个任务。

首先创建xcdatamodeld文件,包括:

name:【String】:任务名称
timetodo:【Double】:计划完成耗时
isValid:【Integer 16】:完成状况
enddate:【Date】:完成日期
等等,类型仅限上面四种。

从菜单生成NSManagedObject文件,属性:

@property (nullable, nonatomic, copy) NSDate *enddate;
@property (nonatomic) double timetodo;
@property (nonatomic) int16_t isvalid;
@property (nullable, nonatomic, copy) NSString *name;

等等,以及@dynamic。

实际使用中发现,在任何地方对timetodo、isvalid赋值都报错,其他属性正常,例如

theTask.timetodo = [dic[@"did"] doubleValue]; 
theTask.timetodo = 1.0;
[theTask setTimetodo:1.0];

执行到此句,都报EXC_BAD_ACCESS异常:error: Execution was interrupted, reason: EXC_BAD_ACCESS (code=EXC_I386_GPFLT).

查了相关的问题,有说property必须是Objective C的对象类型的,基本类型的字段自动生成属性会变成NSNumber,也有说在ios新版中可以自动类型转换balabala不知所云。求解此处为何报错?如何给基本类型属性赋值?

捞捞


解决方案1:

自己找到了解。链接

Core Data 支持包括整形、浮点型、布尔型在内的许多常见数据类型,但是数据模型编辑器默认以 NSNumber 生成这些属性并内置于 managed object 子类中。这使得我们经常会在程序代码中用调用 floatValue,boolValue,integerValue 等 NSNumber 的方法。但我们同样可以直接设置这些属性为想要的标量类型,如 int64_t,float_t 或是 BOOL,方法就是在右边Attribute内选中Use Scalar Type。

这样生成 NSManagedObject(原始数据类型使用标量属性),不再会是类似:

@property (nonatomic, strong) NSNumber *myInteger;

而会用如下声明替换:

@property (nonatomic) int64_t myInteger;

看来用原始数据类型时,无法自动的为标量生成存取方法,需要手动编写,否则报错。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • IOS开发了一个新应用,使用相同BundleID替换了旧应用,想延用旧的coredata数据,无法找到momd
  • 使用CoreData,对实体的基本类型属性赋值时出错
  • CoreData重复数据排除
  • CoreData与SQLite的区别?
  • 中通快递网点查询派送范围查询在coreData中查询一个NSNumber字段

相关文章

  • 2017-06-05 (swift)php如何接受ios端发来的url头数据post方式
  • 2017-06-05 iOS开发:iOS7以上如何修改navigationBar的高度?
  • 2017-06-05 无法删除文件无法读源文件或磁盘UITableView无法滚动到底部
  • 2017-06-05 地图,怎样把CLLocationCoordinate2D转为CLLocation?
  • 2017-06-05 weexiOS下开启devtool的debug功能后界面消失
  • 2017-06-05 像苹果手机将多个app整合到一个文件夹中,哪位大神能给点思路
  • 2017-06-05 (swift)iOS中getter/setter的问题
  • 2017-06-05 iOS基础控件小白提问,ios如何签名?
  • 2017-06-05 ios项目,从testflight下载的app加载图片失败!为什么呢?
  • 2017-06-05 iOS开发:调用了AVAudioPlayer之后按音量调节键变成调节媒体音量,这时怎么使按键调节铃声音量?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • iOS七牛图片上传,错误响应怎么解决?
    • ReactNative程序IOS模拟器显示太大,怎么调整?
    • 为什么UIScrollView的滚动会导致NSTimer失效?
    • 当前页面的脚本发生错误iOS表格刷新后页面的位置会改变
    • iOS锁屏、解锁
    • iOS开发,用for创建6个按钮,摆成两行三列,代码该怎么写?
    • php生成缩略图已经上传的图片能查看缩略图么
    • (swift)brew安装mysql后找不到mysqlclientframework了
    • iOS开发,如何跳转到系统设置页?iOS10
    • OC编程碰到一个奇葩的问题,百思不得其解,求指点

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有