问题标签 [method-missing]

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 回答
1254 浏览

objective-c - Objective-C 前向调用:

我经常做这样的事情:

在 的类别中UINavigationController,我将如何覆盖forwardInvocation:,以便我可以这样做:

  1. 请在您的答案中包含相关代码,而不仅仅是解释。谢谢!

  2. 随意评论这是否是好的做法。我也是出于教育目的而要求这样做,但在我看来,在这种情况下,代码的简化可能会超过处理时间和内存使用方面的不明显(正确?)成本。另外,我来自 Ruby 背景,喜欢使用动态编程来简化事情,例如find_by_nameRails 中的动态查找器(例如 )。

  3. 如果您可以pushCoolViewControllerAnimated:withBlock在初始化视图控制器后实现和调用该块,则可以加分,允许我在创建的视图控制器上设置某些实例变量。

更新:我只记得 ARC 即将推出。所以这个特定的例子可能没有那么有用,但仍然是一个很好的练习/例子,可以在其他情况下使用,例如,核心数据的动态查找器和传递一个块来配置NSFetchRequest.

0 投票
3 回答
8265 浏览

python - Python 相当于 Ruby 的“method_missing”

Python 的 Rubymethod_missing方法等价物是什么?我尝试使用__getattr__,但这个钩子也适用于字段。我只想拦截方法调用。Python的方法是什么?

0 投票
2 回答
872 浏览

objective-c - 课堂上的Objective C和魔术方法

Objective-c 是否提供了一种拦截对不存在的类方法的调用的方法?

0 投票
2 回答
10844 浏览

python - Ruby 在 Python 中的“method_missing”

可能重复:
Python 相当于 Ruby 的“method_missing”

Python 中是否有任何技术可用于拦截消息(方法调用),例如 Ruby 中的 method_missing 技术?

0 投票
3 回答
966 浏览

android - android camera (froyo) 不包含静态方法 open()

我必须是第一个面对这个问题的人,因为我什至找不到一个关于它的线程。

今天我想从我的应用程序需求的相机方面开始。我阅读了一些文档

我的清单如下所示:

<application>我在上面和下面的清单中写了这个<manifest>

我在做什么;我创建了一个新类。使用 eclipse 作为我的 IDE。

然后我声明一个字段:

在构造函数中(只是为了测试)我试图做:

我有一个错误。我使用我的真实手机来测试应用程序,因为我没有网络摄像头或任何可供模拟器使用的东西。当我告诉它有相机时,模拟器给了我一个内存错误。

无论如何,在找出我不能使用 Camera.open 的原因(我包含了包:android.graphics.Camera;)因为这是我用来组织导入功能时 eclipse 包含的内容。

我查看了 eclipse 为我附加的 android.jar。包含在名为 Android 2.2 -> android.jar 的文件夹中

我搜索了 android.graphics 并查看了 Camera.class 的内容

事实证明,我的 Camera 类只有这些方法:

我故意让参数出来,因为它们并不重要。

要解决实际问题:为什么?

为什么没有 open() 方法,没有 release() 方法?以及我缺少的其他任何东西..'

谢谢阅读。

今天的教训:不要做一个聪明的**。我确实 950% 确定我包含了那个特定的包。但这是错误的包裹。德普。谢谢你通知我。问题解决了。

0 投票
4 回答
2279 浏览

ruby - Ruby 是否有未定义实例变量的 method_missing 等价物?

当我调用一个不存在的方法时,method_missing会告诉我方法的名称。当我尝试访问尚未设置的变量时,该值只是nil.

我正在尝试动态拦截对 nil 实例变量的访问,并根据正在访问的变量的名称返回一个值。最接近的等价物是 PHP 的__get. Ruby 中是否有任何等效的功能?

0 投票
1 回答
354 浏览

ruby - Lua 没有和 Ruby 的 method_missing 可比的东西吗?

我似乎记得 Lua 有一些类似于 Ruby 的 method_missing 的东西。还是我记错了?

0 投票
1 回答
428 浏览

ruby - 什么时候调度表可能和 Ruby 中的 method_missing 一样好?

在任何情况下,实现为 lambda 哈希的调度表可能与覆盖 Ruby 的 method_missing 一样好,甚至更好?我之所以问,是因为我今天使用了这种技术,因为我是 Ruby 的新手,但之前有 Perl 背景,维基百科中的调度表示例甚至是用 Perl 实现的;)请参阅:

http://en.wikipedia.org/wiki/Dispatch_table

无论如何,使用调度表而不是 method_missing 有什么缺点。也许我下面的 Ruby 代码提供了线索?看起来我的调度表可能会变得非常大,并且无法访问它包含的 lambdas 以在另一个上下文中使用。所以也许我在某种程度上回答了我的问题,但我真的很感兴趣,什么时候调度表可能是比 method_missing 或其他元编程技术更好的解决方案,谢谢

0 投票
2 回答
2975 浏览

r - sp R 包和缺失值

我正在尝试使用 sp 包在 R 中创建气泡图。我的数据有很多缺失值(“N/A”),气泡图似乎不喜欢它。

当我运行此代码时,我收到一条错误消息“quantile.default(data[, zcol]) 中的错误:如果 'na.rm' 为 FALSE,则不允许缺少值和 NaN”。

我不明白,因为我说过要删除缺失值!我怀疑 sp 处理我错过的缺失值的方法略有不同

0 投票
4 回答
5359 浏览

javascript - Javascript 中缺少捕获方法并执行一些逻辑?

在 Ruby 中,您可以捕获对缺少的方法的调用并动态定义它。

我想在 JavaScript 中完成的是拥有一个没有方法的对象。我希望将缺少的方法转换为对 emit() 的调用:

我认为最好捕获缺少的方法错误并运行 emit(methodName) 而不是在运行时定义所有方法(来自固定列表)。这样,如果一个对象有成百上千个事件,我们就不会有性能开销。

做这个的最好方式是什么?

更新:这是一个 API 设计,所以我宁愿远离:

我想知道如何在幕后完成此操作,以便用户可以照常使用方法。