问题标签 [nsinvocation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 使 NSInvocation 调用特定的 IMP
我正在寻找一种方法来NSInvocation
调用特定的IMP
. 默认情况下,它调用IMP
它可以找到的“最低”版本(即最近被覆盖的版本),但我正在寻找一种方法来让它调用IMP
继承链中更高的一个。我想调用的IMP
是动态确定的,否则我可以使用super
关键字或类似的东西。
我的想法是使用该-forwardInvocation:
机制来捕获消息(简单且已经工作),然后更改IMP
它,使其转到既不是super
实现也不是最远后代实现的方法。(难的)
我发现唯一可以远程关闭的是AspectObjectiveC,但这需要 libffi,这使得它与 iOS 不兼容。理想情况下,我希望这是跨平台的。
有任何想法吗?
免责声明:我只是在尝试
尝试@bbum 的蹦床功能想法
所以我认为我已经完成了大部分工作;我有以下通过 正确添加的蹦床class_addMethod()
,并且确实输入了:
我已经验证了正确的 self 和正确的 IMP 在 JMP 之前都是正确的,并且_cmd
参数也正确输入。(换句话说,我正确地添加了这个方法)。
然而,事情正在发生。我有时会发现自己跳到一个方法(通常不是正确的方法)与一个 nilself
和_cmd
. 其他时候,我会用 EXC_BAD_ACCESS 在不知名的地方崩溃。想法?(自从我在汇编中做任何事情以来已经很长时间了......)我正在 x86_64 上测试它。
iphone - NS调用;变量不是 CFString
我正在使用 NSInvocation 进行动态调用:
在调试器中,所有三个对象变量都正确指向三个不同的 NSCFString*。调用完成,另一方面,到达了正确的方法。
但是,在调试器中,它的参数给出错误:“变量不是 CFString”。更糟; 所有三个变量都指向同一个内存位置。
怎么会这样?
objective-c - 如何将参数传递给在 NSTimer 中调用的方法
我有一个计时器调用一个方法,但这个方法需要一个参数:
应该
现在这种语法似乎不正确。我尝试使用 NSInvocation 但遇到了一些问题:
我应该如何使用调用?
objective-c - 如何从 NSInvocation 获得 NSString 结果?
以下代码按预期工作:
但是当我用 替换它时NSInvocation
,我得到了完全不同的结果:
我已经搜索了高低,但无法弄清楚这一点。有什么帮助吗?谢谢!
iphone - 带有返回值的 NSInvocationOperation (BOOL)
嗨我有这些调用操作:
我的方法:
应该扔回 bool....
我怎样才能抓住这个价值?
问候
objective-c - 在 OCMock 中使用块期望
我正在使用 GHUnit 和 OCMock 在我的 iOS 应用程序中进行一些测试工作。
所以我在整合它们时遇到了一些麻烦。
以下代码运行良好。
但是当我改变 [[[mock stub] andReturn:@"255"] capitalizedString]; 进入
我收到一条错误消息,上面写着“原因:'NSCFString' 应该等于 '255'。应该等于”
我认为这两个语句应该做完全相同的事情。我错了吗?
objective-c - 如何编码 NSInvocation?
我可以通过添加一类<NSCoding>
方法来解决这个问题吗?
objective-c - NSInvocation 类上的 setSelector 方法的目的是什么?
我不明白为什么当信息已经setSelector
通过.NSInvocation
invocationWithMethodSignature
要创建NSInvocation
对象,我们执行以下操作:
请注意,我们将选择器传递给[SomeObject instanceMethodSignatureForSelector: someSelector];
并再次传递给[invocation setSelector:someSelector];
.
有什么我想念的吗?
iphone - 如何正确释放 NSInvocation 的保留参数?
释放 NSInvocation 时是否释放了保留的参数,或者我是否需要手动释放 NSInvocation 参数列表中的对象?
iphone - 在 iOS 中传递委托
我正在开发一个包含搜索表单的 iOS 应用程序。当用户单击搜索时,我想使用 NSInvocationOperation (这很好)来生成另一个线程。在这个线程上,我将调用我的数据层(一个单独的类)来从 Web 服务中检索数据。有什么方法可以在我的 ViewController 子类中向数据层传递一个方法,该方法应该在完成时执行,以及其他参数(搜索词等)?有点像 .NET 的 BackgroundWorker?