问题标签 [class-extensions]

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

objective-c - ivars 与类扩展

假设以下所有代码都写在一个实现文件中。有人可以解释一下两者之间的区别:

在我看来,第一个在类扩展中声明了一个属性变量。第二个在类扩展中声明一个实例变量。第三个声明了一个不是类扩展的实例变量……这意味着什么?它与在类扩展中简单地声明 ivar 相比如何?

0 投票
1 回答
271 浏览

objective-c - 我的 Objective-C 类的私有接口在哪里?

我正在阅读的教程书告诉我创建一个GameViewController文件类,我这样做了,导致以下文件显示在 Xcode 的左侧:

游戏视图控制器.h 游戏视图控制器
.m

然后在本书的这一部分之后,它谈到了在私有接口中创建属性。

这本书是“通过开发 iPhone 游戏学习 Objective-C”,我现在在第 4 章 - Alien Invaders

你能告诉我私有接口在哪里吗?

0 投票
1 回答
162 浏览

ios - 尝试在单例中分配属性时出现 SIGABR 异常

当我在初始化SIGABRT中为类的属性“myLocal”赋值时,我得到了一个。怎么了?CMRequestManagerSingleton

编辑:

好的,我找到了一个解决方案:在类扩展之外的头文件中移动属性“myLocal”:

这项工作,但我不明白为什么。所以问题仍然存在:我之前的代码有什么问题?

0 投票
1 回答
191 浏览

ruby-on-rails - 扩展 Clearance gem 控制器

我正在尝试扩展许可控制器以通过其他一些表单元素

我目前已经完成了以下操作,但它似乎没有工作并且正在返回ActiveModel::ForbiddenAttributesError

0 投票
1 回答
2411 浏览

ios - 泛型对象的约束扩展与类型不匹配

我正在尝试对受泛型类型约束的泛型类进行扩展。这是我认为应该工作的代码的简化:

但是,我收到以下错误消息:

相同类型的要求使泛型参数“T”非泛型

我搜索了解决此问题的方法,并找到了使用协议来约束扩展而不是类型的建议:链接到文章。这样做之后,我最终得到了这个:

现在它确实让我限制了扩展,但它显示了不同的错误消息:

无法将类型“Thing<T>”的值转换为预期的参数类型“Thing<StringProtocol>”

基本上现在它知道它本身T符合协议StringProtocol,但是在引用整个对象时它不知道它Thing<T>

是否有任何解决方法,或者我应该将其作为进化提案提交给 swift 邮件列表?

注意:所有代码都是在操场上测试的,你可以复制粘贴来试试。

0 投票
1 回答
1454 浏览

java - 如何扩展 JComboBox 类?

我正在写一个Java GUI。我有一些预设JComboBoxes并且能够将它们彼此区分开来,我想扩展类并添加一个enum变量来帮助我将它们区分开来。

这是两个标准的 MCVE JComboBoxes

JComboBoxes正如上面的示例所示,当用户单击按钮时,我无法将两者区分开来。使用的一个例子BoxType是,一个BoxType会打印一种类型的消息,而另一个BoxType会打印另一种消息。例如:

但是,我偶然发现了一个构造函数的问题,我尝试使用类似于我对JComboBoxand 输入 a所做的操作DefaultComboBoxModel,但我还没有在XComboBox课堂上实现它。

问题

如何修改XComboBox类以便DefaultComboBoxModel在构造元素时给它一个?

我希望能够做到这一点:

感谢您的任何帮助和/或指导!

0 投票
2 回答
9469 浏览

ios - Swift 中的类扩展与子类化?

我正在使用第三方框架,该框架提供了一个实例只有属性的类。在我的应用程序中,我想为此实例添加一个额外的属性。对于这种情况,执行此操作的适当方法是什么?

a) 在我的应用程序中扩展框架的类

b)创建框架类的子类并定义我需要的新属性

提前致谢

0 投票
2 回答
979 浏览

ios - iOS - 使 swift 扩展有选择地可见

快速,如何使扩展仅对少数类而不是对所有人可见?

我在一个名为UIImage+filters.swift. 我将仅在我的项目中的 2 个类中使用此扩展,PhotoImage并且PhotosViewController. 我希望扩展只对这两个类可见。我怎样才能做到这一点?

0 投票
2 回答
81 浏览

inheritance - 数据和开放不兼容,我有什么选择?

我正在做一个gli的kotlin 端口,现在我被卡住了

其实我有以下

open class Texture

由几个类扩展,例如Texture2d

现在,Texture有相当多的属性

因此我想把它作为一个data类来利用equals()它附带的..

但不幸的是data并且open不兼容..(见这个问题

我可以解决它的一种方法,我可以编写自己的equals()方法,但这将是样板代码和肮脏的代码,这正是我通过 java 切换到 kotlin 的两个最大原因

另一种方式,由于所有classes 扩展Texture并没有真正添加任何东西,它们充当一种构建器(看起来 cppTexture2d),是否将它们用作.. 构建器(参见Kirill 的这个优秀答案)

但是由于没有什么是免费的,这个解决方案的一大缺点是我失去了Texture2d作为一个类的可能性,并且Texture2d有一个很好的操作符[]来检索纹理的单个图像..

由于 kotlin 社区看起来非常活跃和支持,我想知道您是否有更好的主意..

0 投票
1 回答
256 浏览

c# - 如何导航到 HttpRouteCollectionExtension 的 MapHttpRoute 等扩展方法

在 Visual Studio 2012 中,我想从 HttpRouteCollection 类导航到 MapHttpRoute 方法。

因此,例如,如果我转到 Routes.MapHttpRoute() 的 Routes 的定义,我看到 Routes 是 HttpRouteCollection 类的一个实例。但是,如果我检查 HttpRouteCollection 的定义,我找不到 MapHttpRoute 方法。扩展方法是否隐藏?