小编Sen*_*cha的帖子

使用NSBatchUpdateRequest将Core Data属性设置为nil

是否可以将属性设置为nil使用NSBatchUpdateRequest?传递NSNull()propertiesToUpdate不工作:

let unlockRequest = NSBatchUpdateRequest(entityName: "MyEntity")
unlockRequest.predicate = NSPredicate(format: "self in %@", myObjectIDs)
unlockRequest.propertiesToUpdate = ["lockDate": NSNull()]
var error: NSError?
myContext.executeRequest(unlockRequest, error: &error)
if let error = error {
    log.error("Failed to unlock: \(error)")
}
Run Code Online (Sandbox Code Playgroud)

我没有得到任何错误,但它没有清除日期.

我也尝试过设置它NSExpression(forConstantValue: NSNull()),但这也不起作用(forConstantValue参数不接受可选值,所以我不能传递它nil.).

core-data ios swift

6
推荐指数
2
解决办法
791
查看次数

尽管有dSYM,但无法手动对iOS崩溃日志进行符号化

我无法让Xcode 7象征我被App Store用户发送的崩溃日志,并且在尝试手动符号化时它失败了,尽管我拥有所有必需的dSYM.

崩溃日志摘录:

Exception Type: EXC_BREAKPOINT (SIGTRAP) 
Exception Codes: 0x0000000000000001, 0x0000000100fa990c 
Triggered by Thread: 0

Filtered syslog: 
None found

Thread 0 name: Dispatch queue: com.apple.main-thread 
Thread 0 Crashed: 
0 libswiftCore.dylib 0x0000000100fa990c 0x100e64000 + 1333516 
1 libswiftCore.dylib 0x0000000100fa990c 0x100e64000 + 1333516 
2 MyApp 0x00000001002cdc50 0x1000a4000 + 2268240 

...

Binary Images: 
0x1000a4000 - 0x10079ffff MyApp arm64 <29a862b975b335ae91c2615c775e064f> /var/mobile/Containers/Bundle/Application/CC9E1FB1-22BB-4723-B28A-95EBE21522A1/MyApp.app/MyApp 
Run Code Online (Sandbox Code Playgroud)

我的应用程序已启用Bitcode,因此我从Xcode> Organizer> Archives下载了dSYM.然后我确认29A862B9-75B3-35AE-91C2-615C775E064F.dSYM在存档中确实存在提交到App Store的构建(与用户在崩溃时运行的构建相同).

然后手动对崩溃日志进行符号化,我在终端中运行以下命令:

$ export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
$ /Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/Current/Resources/symbolicatecrash -v ~/Desktop/CrashOnLaunchLogFromUser.crash  > ~/Desktop/Symbolicated.crash
Run Code Online (Sandbox Code Playgroud)

然后我等待处理完成,但生成的符号文件没有替换符号.查看输出时,在与应用程序的二进制文件相关时,我看到以下信息:

Symbolicating...

....fetching symbol file for MyApp--[undef] …
Run Code Online (Sandbox Code Playgroud)

crash xcode ios dsym xcode7

5
推荐指数
0
解决办法
478
查看次数

使用 RxSwift 创建一个 observable

我正在使用 RxSwift 并且我正在尝试扩展另一个库,我正在使用它来制作可观察的东西。

该库基本上每次值更改时都会调用一个委托方法,我想挂钩到这个方法,每当它调用委托时,还要将新值添加到我想在我的子类中创建的可观察序列中。

我已经看到了如何创建可观察序列,但在每个示例中,next事件都被发送到Observable.create方法块内的观察者。我不知道如何从传递给create.

我只是想创建一些我可以观察或可以使用 RxSwift 驱动的东西,并在某些点手动添加到序列中。

如果有人能指出我正确的方向,我将不胜感激,因为我对此很陌生。

ios swift rx-swift

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

核心数据:使用关系计数谓词获取性能较差

我正在从核心数据中获取几千个对象,并且我只想返回那些至少有 1 个与之相关的对象的对象。

当我使用类似于以下的谓词时,需要很长时间才能获取对象。大约5-8秒:

NSPredicate(format: "relationName.@count > 0")
Run Code Online (Sandbox Code Playgroud)

是否有更有效的方法来执行此获取,或者我应该将值缓存在对象中以进行快速查找(即属性hasRelatedObjects)。

如果缓存是最好的途径,我不认为它是微不足道的。Tag例如,如果我修改我的对象,willSave我可以获取关系计数并将其存储在我的新属性中。但是,如果相关对象在其关系一侧将标签添加到自身,则该Tag对象永远不会更改,因此willSave不会被调用。

我如何确保无论您调用myTag.addRelatedObject(obj)myTag对象已更新)还是myObj.addRelatedTag(myTag)myObj已更新),该值都已缓存?

core-data

0
推荐指数
1
解决办法
1079
查看次数

标签 统计

ios ×3

core-data ×2

swift ×2

crash ×1

dsym ×1

rx-swift ×1

xcode ×1

xcode7 ×1