- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在从 XPC 服务的 block 回调中传输 NSAttributtedString 时遇到了很大的问题。
我试图将基本字符串返回为:
NSDictionary *arrayComa = @{NSForegroundColorAttributeName:[NSColor colorWithRGB:0xD35250],
NSFontAttributeName:[NSFont fontWithName:@"Monaco" size:11]};
NSMutableAttributedString *testString = [[NSMutableAttributedString alloc] initWithString:@"{}" attributes:arrayComa];
我还将传入响应列入白名单:
let incommingClasses:Set = Set(arrayLiteral: [NSMutableAttributedString.self, NSAttributedString.self, NSColor.self, NSFont.self, NSString.self, ])
connectionService.remoteObjectInterface?.setClasses(incommingClasses, forSelector: attributtedText:withReply:, argumentIndex: 0, ofReply: true)
无论我做什么,我都会遇到错误:
Exception caught during decoding of received reply to message 'Exception caught during decoding of received reply to message 'attributtedText:withReply':, dropping incoming message and calling failure block.
Exception: Exception while decoding argument 0 (#1 of invocation):
<NSInvocation: 0x6000006649c0>
return value: {v} void
target: {@?} 0x0 (block)
argument 1: {@"NSMutableAttributedString"} 0x0
Exception: value for key '<no key>' was of unexpected class 'NSMutableAttributedString'. Allowed classes are '{(
(
NSMutableAttributedString,
NSAttributedString,
NSColor,
NSFont,
NSString
)
)}'。
有人通过XPC服务成功传输NSAttributtedText吗?
最佳答案
编辑:我在 devforums 上收到了对我的消息的回复,解决方法是使用 NSSet 并在传递给 setClasses() 时将其转换为 Set。另一个问题是,所有选择器已经有预设的类,因此您需要将自己的类添加到当前的类中,而不是仅设置您自己的类。这是一个工作代码:
let interface = NSXPCInterface(withProtocol: MyProtocol.self)
let expectedClasses = NSSet.setWithArray([[NSMutableAttributedString.self, NSAttributedString.self, NSColor.self, NSFont.self])
let currentExpectedClasses = interface.classesForSelector("attributtedText:withReply:", argumentIndex: 0, ofReply: false) as NSSet
let allClasses = currentExpectedClasses.setByAddingSet(expectedClasses)
interface.setClasses(allClasses as Set<NSObject>, forSelector: "attributtedText:withReply:", argumentIndex: 0, ofReply: false)
原始答案:
这只是部分答案,因为我还没有找到正确的方法来做到这一点,但是
let incommingClasses:Set = Set(arrayLiteral: [NSMutableAttributedString.self, NSAttributedString.self, NSColor.self, NSFont.self, NSString.self, ])
返回一个 Set
let foo = Set(["string1", "string2"])
它返回一个 Set
问题是我找不到创建类类型集的方法。我在苹果的开发论坛上问过:https://devforums.apple.com/thread/271316但除非我遗漏了一些明显的东西,否则这看起来像是一个 API 错误。
关于cocoa - XPC 服务返回 NSAttributtedString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30201960/
我在从 XPC 服务的 block 回调中传输 NSAttributtedString 时遇到了很大的问题。 我试图将基本字符串返回为: NSDictionary *arrayComa = @{NSF
我想要一些具有自定义行距的文本,所以我使用 CTParagraphStyleAttributte 编写了一个属性字符串并将其传递给我的 CATextLayer: UIFont *font = [UIF
我是一名优秀的程序员,十分优秀!