CoreData里UUID的奇怪问题

0x1

今天我在开发AppleWatch应用时发现了一个关于CoreData的极其古怪的问题,特此记录下来

0x2

因为CoreData是支持UUID类型的属性的,所以我在设计某个Model时就用了UUID的属性,但是因为不是连续开发导致我后来把这个属性的类型忘了,以为是String.

于是我在手机端的代码里写了类似这样的代码

let uuid: String = "7BD09D86-8941-4E50-9A42-7240E970FEE7"
let predicate = NSPredicate(format: "uuid = %@", argumentArray: [uuid])
//省略CoreData根据predicate获取数据的代码

注意Model里uuid的属性类型是UUID,我在这里直接用的是String
然后,我...很成功的获取到了预期的数据.
当然,我当时并没有意识到类型不匹配.

于是乎,我把相同的代码放到了

//MARK: -WCSession的代理方法 Watch向iPhone发送的消息在这里接收
 func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) 

然后,我怎么也获取不到数据了,一模一样的代码,我曾一度变成了有神论者,简直诡异至极....
获取数据的方法我放在什么线程里都不行,这个代理函数的执行环境我不知道跟主应用的程序执行环境有什么不同

0x3

结果到目前为止大家肯定已经知道了,就是把查询时的String类型的uuid修改成UUID类型

0x4

原因未知

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,256评论 19赞 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 16,877评论 4赞 61
  • 首先,我并没有怀孕,哈哈哈! 也尚未被求婚(咳咳,@塔达斯) 不过是辞职了。 在上海电视台经历了5年爱恨情仇(去除...
    Carol林阅读 2,032评论 10赞 20
  • 本文基于webpack2.x介绍基于webpack的vue开发环境搭建请恕本文无耻的省略了vue的知识点讲解 we...
    八杯水多睡觉阅读 3,358评论 2赞 8
  • 庆历四年春,滕子京谪守巴陵郡。越明年,政通人和,百废具兴。乃重修岳阳楼,增其旧制,刻唐贤今人诗赋于其上。属予作文以...
    沙加之伦阅读 444评论 0赞 0

友情链接更多精彩内容