问题标签 [nsproxy]

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 投票
0 回答
52 浏览

ios - NSProxy 不兼容的指针类型

我有一个NSProxy名为的子类EBManagedObject和一个NSObject名为EBObject. EBManagedObject使用用于检索EBObjectfrom的 guid 进行初始化EBObjectRepositoryEBManagedObject会将发送给它的任何消息转发到它的EBObject,除了一些受限消息,在这种情况下它会抛出异常。因此,在任何可以使用 an 的地方,您都EBObject可以使用EBManagedObject. 我的问题是 Xcode 不理解这一点,并在尝试执行以下操作时给我一个不兼容的指针类型警告:

修复起来很简单:

但我想知道是否有任何方法可以让 Xcode 考虑EBObjectEBManagedObject兼容指针类型?

我知道我可以创建一个他们都实现的协议并执行以下操作:

但我有充分的理由不这样做。

顺便说一句,所有的类名都是组成的。我的实际场景比较复杂,所以我做了一个简化的例子来解释我的问题。

0 投票
1 回答
150 浏览

ios - NSProxy forwardInvocation:返回一个新的 NSProxy 实例导致内存泄漏

我尝试使用 NSProxy 来包装对象并在 (forwardInvocation:) 中创建一个代理实例作为调用的 retValue,但不能在 ARC 中释放所有 proxyon 实例。我困扰了很久。

github 上的演示:https ://github.com/JorrisRaghan/proxyon

你可以看到控制台日志:

DEALLOC PP对象:...

DEALLOC Proxyon:Class< PPObject >

但没有 DEALLOC Proxyon:id< PPObject >"。

您还可以使用 Instruments 来检查内存泄漏。

所以我需要你的帮助来解决它,谢谢!

更新:我发现这个泄漏来自 forwardInvocation:

我将 PPObject 设置为 retVal 而不是 Proxyon 实例,并且在 PPObject 中发生了泄漏,所以我猜 -[NSInvocation setReturnValue:] 是关键。但是如何解决呢?

0 投票
1 回答
216 浏览

ios - 是否可以拦截任何 UIViewController 子类上的所有方法类

假设我希望能够拦截对 UIViewController 子类的任何方法调用。

首先,我 swizzle+(instancetype)alloc method并检查当前实例是否isKindOfClass:[UIViewController class]. 如果是,我继续用目标实例化我的代理。

问题是我崩溃了,所以我希望我的代理的实现是错误的......我做错了什么?

这是一个例外:

0 投票
1 回答
1947 浏览

swift - 在 Swift 4.1 中使用 NSProxy

NSProxy如何在 Swift中创建子类?

尝试添加任何init方法都失败并出现错误:“无法在初始化程序之外调用超级初始化”,或“在从初始化程序返回之前未在所有路径上调用超级初始化”

错误1 错误2

使用 Objective-C 子类作为基类是可行的,但感觉更像是一种 hack:

0 投票
0 回答
292 浏览

ios - NSProxy 和委托

我必须为框架添加一些功能,为 UICollectionView 和 UITableView 构建灵活的数据源。我有课

我有 2 个初始化程序。首先是一个代表的初始化。

其次是委托处理程序,它继承自 NSProxy 并由一些侦听器组成,我可以将其添加到 tableView 的委托中。

我必须展示委托处理程序的示例。

当我运行我的应用程序时,我有这个错误。Class UniversalDelegateHandler 在objective-C 上写的绝对正确。 这个

和这个

我什至不知道该怎么做。等你的帮助。

0 投票
0 回答
2621 浏览

objective-c - NSProxy 可以代替 NSView 子类吗?

我尝试了一个导致 EXC_BAD_ACCESS 错误的简单测试:

这个测试有什么问题吗,还是有根本原因导致 NSView 子类不能与 NSProxy 一起使用?

错误详情:

线程 1:EXC_BAD_ACCESS (code=1, address=0xc) at [NSView addSubview:]