gpt4 book ai didi

pyobjc - objc.signature 记录在哪里?

转载 作者:行者123 更新时间:2023-12-02 01:32:05 25 4
gpt4 key购买 nike

我正在尝试为 NSWebView 实现一个委托(delegate),但是当我运行它时,我得到了这个错误:

TypeError: Error when calling the metaclass bases
class Delegate does not correctly implement protocol WebScripting: the signature for method isSelectorExcludedFromWebScript: is c@:: instead of Z@::

我在哪里可以找到“c@::”的文档,而不是“Z@::”,我的代码可能有什么问题?

问题的方法如下:

def isSelectorExcludedFromWebScript_(self, sel):
return True

具体来说,NSWebView 记录在:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/WebKit/Classes/WebView_Class/index.html (但我怀疑苹果以后会移动这个网址)

更准确地说,我尝试使用的代表的非正式协议(protocol)记录在此处:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/WebKit/Protocols/WebFrameLoadDelegate_Protocol/index.html#//apple_ref/doc/uid/TP40003828https://developer.apple.com/library/mac/documentation/Cocoa/Reference/WebKit/Protocols/WebScripting_Protocol/index.html#//apple_ref/doc/uid/TP40001562

我找到的关于 objc.signature 的唯一文档位于:http://pythonhosted.org/pyobjc/api/module-objc.html

最佳答案

标准的 objective-c 类型编码记录在 Apple's ObjC runtime reference 中.这将 c 定义为 char,将 @ 定义为对象,将 : 定义为选择器,但没有提及 Z.

PyObjc 添加了一些不在该列表中的内容,如 http://pythonhosted.org/pyobjc/api/module-objc.html#objective-c-type-strings 中所述。通过引用 objc 模块中的一堆常量。 objc._C_NSBOOL 的值为 Z(也在 pyobjc BridgeSupport docs 中提到)

所以看起来问题与将 Python 的 True 转换为正确的 objective-c 类型有关,但我不确定如何解决该问题。

关于pyobjc - objc.signature 记录在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33560666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com