小编Yoh*_*hst的帖子

如何捕获核心数据“违反约束” Xcode8 / iOS10

我有一个小的代码集,可以捕获来自监视设备的数据消息。消息包含唯一的日期/时间字段(startDts)。我将这些数据和核心数据存储到sqlite数据库中。我已经为startDts设置了约束。一切顺利,直到我收到之前已经收到的带有startDts的消息-尝试保存时收到“违反约束”。说得通。

我的问题是我似乎无法在代码中捕获它。相反,调试器仅在“ try”行上停止。

let we = WaterEvent(context: self.coreDataStack.context)
we.startDts = e.startTime as NSDate?
we.stopDts  = e.endTime as NSDate?

do {
    try self.coreDataStack.context.save()     // << Xcode breaks here on constraint violation
}
catch {
    let nserror = error as NSError
    print("CoreDataStack Unresolved error \(nserror), \(nserror.userInfo)")
    print("Constraint violation for: \(we.startDts)")  
}
Run Code Online (Sandbox Code Playgroud)

因此,永远不会执行“ catch”代码块,即,我无法真正智能地响应约束冲突。

这是调试器输出的快照: 在此处输入图片说明 前三行是我的代码中的打印语句,第4行和第5行是调试器输出。

发生什么了?是“违反约束”不是引发的异常吗?

core-data ios10 xcode8

6
推荐指数
0
解决办法
171
查看次数

初始化MIDIMetaEvent结构

我正在努力用swift初始化MusicPlayer.h中的MIDIMetaEvent结构头文件定义结构如下:

struct MIDIMetaEvent {
  var metaEventType: UInt8
  var unused1: UInt8
  var unused2: UInt8
  var unused3: UInt8
  var dataLength: UInt32
  var data: (UInt8)
}
Run Code Online (Sandbox Code Playgroud)

在"数据"成员之前,这似乎相当简单.这是1元素元组定义吗?我可以很容易地初始化所有其他结构元素但是徒劳地试图将"数据"设置为除单个值之外的任何其他内容.在我的代码中,我使用了一个名为myData的UInt8数组,并试图像这样初始化结构:

var msg = MIDIMetaEvent(
  metaEventType : UInt8(0x7F),
  unused1       : UInt8(0),
  unused2       : UInt8(0),
  unused3       : UInt8(0),
  dataLength    : UInt32(myData.count),
  data          : UnsafeBufferPointer<UInt8>(start: UnsafePointer<UInt8>(myData), count:myData.count) )
Run Code Online (Sandbox Code Playgroud)

但编译器对此并不满意,并抱怨"UnsafeBufferPointer无法转换为UInt8".如果我只是将数据设置为单个值但将dataLength设置为大于1的值,则生成的MIDIEventData显示事件中的第一个值是"数据"中的第一个值,后跟符合"dataLength"字节的乱码数据字节.很明显,"数据"被视为某种连续记忆.

那么如何将'data'元素设置为数组中的UInt8元素?

macos ios coremidi swift

5
推荐指数
1
解决办法
739
查看次数

XCTest sleep()函数?

我正在测试一个采样数据的应用程序.我正在设置的部分测试需要存储一些数据点.我想通过让XCTest执行获取方法,然后执行sleep()函数并再次调用获取方法来实现这一点.

虽然有一些方法可以等待超时的期望,但似乎没有简单的wait()/ sleep()方法只是暂停执行指定的时间.知道如何使用Xcode 6和Swift来做到这一点吗?

xcode xctest swift

3
推荐指数
1
解决办法
2940
查看次数

标签 统计

swift ×2

core-data ×1

coremidi ×1

ios ×1

ios10 ×1

macos ×1

xcode ×1

xcode8 ×1

xctest ×1