问题标签 [swizzling]

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.

0 投票
1 回答
3192 浏览

objective-c - 来自现有共享委托的覆盖/调配方法

是否可以仅覆盖现有委托的某些功能,而我们自己却完全不是委托?

我尝试用我的替换目标 IMP,没有工作:'(

更多详情:


不工作!我的方法没有被调用:(

0 投票
1 回答
4190 浏览

c# - HLSL Swizzle - 在 C# 中

我正在寻找一种在 C# 中实现 HLSL 中的 swizzle 功能的方法,对于那些不熟悉这是什么的人 - 它用于轻松访问矢量元素。

可以创建很多属性(每个可能的组合一个)。我有一种感觉,可以通过 Linq 来完成,但我对此并没有太多经验。

我不知道 XNA 是否有类似的类型,但我不想走这条路,因为这就是我使用它的全部目的,也就是说,如果它有的话。

谢谢。

0 投票
1 回答
24286 浏览

iphone - iPhone 设备上的方法 Swizzle

我尝试了 JRSwizzle 和 MethodSwizzle。它们在模拟器上编译得很好,但是当我尝试为 Device (3.x) 编译时抛出一堆错误

有没有人在iphone上玩过运气?有什么诀窍?

TIA

0 投票
5 回答
3495 浏览

c - 磁盘指针如何工作?

假设我想将一个复杂的数据结构(比如一棵树)存储到磁盘上。在我的数据结构中连接节点的内部指针是指针,但我不能只将这些指针写入磁盘,因为当我读回数据结构时,内存位置会发生变化。

那么将指针存储在磁盘上的正确方法是什么?答案是否像(文件,偏移量)一样简单,还是我遗漏了什么?我可以直观地知道指针如何转换为 (File, offset) 对,然后又转换回来,但是有一些我应该注意的细微之处吗?

编辑:我应该提到我对数据库如何在内部执行此操作特别感兴趣,对于 b-tree。尽管我确实很欣赏基于 XML 的答案,但我可能使这个问题比我应该提出的更笼统。

0 投票
2 回答
17953 浏览

ios - 如何在 iOS 上调整类方法?

方法调配对实例方法非常有效。现在,我需要调配一个类方法。知道怎么做吗?

试过这个但它不起作用:

0 投票
3 回答
1032 浏览

iphone - 替换运行时从 XIB 加载的 UIImage(s) 的内容

对于我正在开发的概念,我需要手动加载 XIB 文件,并通过使用类和实例方法调配,我已经能够拦截对 UIImage 类的 imageCustomNamed、imageCustomWithContentsOfFile 和 imageCustomWithCGImage 的调用以及 UIImageView 的 initCustomWithImage 调用。我想要的是检测图像名称并将其替换为动态呈现的一些内容,以代替设计时在 IB 中设置的内容。

例如:

当 XIB 有一个 UIImageView 对象,其 Image 属性设置为“About.png”时,我需要拦截该图像的加载并根据特定条件替换为另一个图像。在 UIImageView 对象在设计时加载图像集之后替换图像也可以,但看起来用于设置 UIImageView 内容的 UIImage 的原始名称没有存储在任何地方。

我不能使用 IBOutlets,因为我事先不知道 XIB 文件的内容;这是一个应该在任何 XIB 上工作的类,而不仅仅是一个特定的类。

自定义方法实际上被调用以代替默认方法,但看起来在加载 XIb 时系统使用接受 CGImageRef 作为参数的 imageCustomWithCGImage;从中无法知道来源(即:图像文件名)

关于如何拦截图像加载的任何想法?

0 投票
1 回答
1414 浏览

macos - SIMBL with Method Swizzling

我在使用 SIMBL 连接的外部应用程序中覆盖某些功能时遇到了一些很大的麻烦。

在这个应用程序中,有一个类 - 我们称之为“AppClass”。在这个类中有一个函数,

我从类转储二进制文件中得到了这个。整个接口定义为:

我试图用 jr_swizzleMethod:withMethod:error 覆盖这个函数:

由于缺乏文档,这就是我想出的:

应该够了吧?但我在编译时收到此错误:

我该如何解决这个问题?

0 投票
3 回答
4599 浏览

ios - 使用类别覆盖方法时如何调用原始实现?

我试图弄清楚事情是如何运作的。所以我想当我使用类别覆盖某些方法时,我会得到有趣的 NSLogs。

super 和 self 在这里不起作用。有没有办法调用 -hitTest:withEvent: 的原始实现?我想要的是每次在 UIView 上调用 -hitTest:withEvent: 时的 NSLog。

仅用于个人学习目的。我想看到事件传递的实际效果。

0 投票
3 回答
2641 浏览

c++ - 在 C++ 中保存指向文件的指针

我正在为学校的一门课程开发游戏。其中一项任务是启用将游戏保存到文件,然后从同一文件加载游戏。

我遇到的问题是指针。我没有在堆栈上分配任何东西(例如,由于项目的所有权),因此所有类都有指向它们想要引用的任何内容的指针。

虽然这很容易解决(为每个对象分配一个 ID 并存储该 ID 而不是指针),但真正的问题来自多重继承。

让我们以Actor类为例。它看起来像这样:class Actor : public Object, public ItemOwner哪里Object是一个 Obj-C 风格的基类,它有一个保留计数和释放、保留和自动释放方法。ItemOwner 只是一个接口,它具有一些方法,例如virtual bool add(Item *item) = 0;,virtual void remove(Item *item) = 0;virtual bool transfer_ownership(Item *item, ItemOwner *new_owner) = 0;

现在真正的问题来了,哪个类(es?)应该有ID。Item 有一个指向 ItemOwner 的指针,而 Room 有一个指向 Actor 的指针。演员应该只被保存一次。

我考虑过为每个超类(对象、ItemOwner 等)分配 ID,但是如果我有一个指向 Actor 的指针,那么该 Actor 是否总是与它包含的 Object 具有相同的地址(Actor *foo = new Actor(); foo == (Object *)foo)?如果不是游戏中的每个班级都需要有一个 ID。

任何想法或建议将不胜感激。

0 投票
1 回答
1549 浏览

iphone - 在 iPhone 上自定义 NSLog 函数

我知道在Objective C中可以为选择器和方法进行方法调配。是否可以将NSLog之类的函数调配到我们的自定义函数中。我想在自定义函数中添加一些额外的功能以及 NSLog。

编辑:

我最终使用了另一个在内部调用 NSLog 的函数。