问题标签 [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.
objective-c - ivars 与类扩展
假设以下所有代码都写在一个实现文件中。有人可以解释一下两者之间的区别:
在我看来,第一个在类扩展中声明了一个属性变量。第二个在类扩展中声明一个实例变量。第三个声明了一个不是类扩展的实例变量……这意味着什么?它与在类扩展中简单地声明 ivar 相比如何?
objective-c - 我的 Objective-C 类的私有接口在哪里?
我正在阅读的教程书告诉我创建一个GameViewController
文件类,我这样做了,导致以下文件显示在 Xcode 的左侧:
游戏视图控制器.h 游戏视图控制器
.m
然后在本书的这一部分之后,它谈到了在私有接口中创建属性。
这本书是“通过开发 iPhone 游戏学习 Objective-C”,我现在在第 4 章 - Alien Invaders。
你能告诉我私有接口在哪里吗?
ios - 尝试在单例中分配属性时出现 SIGABR 异常
当我在初始化SIGABRT
中为类的属性“myLocal”赋值时,我得到了一个。怎么了?CMRequestManager
Singleton
编辑:
好的,我找到了一个解决方案:在类扩展之外的头文件中移动属性“myLocal”:
这项工作,但我不明白为什么。所以问题仍然存在:我之前的代码有什么问题?
ruby-on-rails - 扩展 Clearance gem 控制器
我正在尝试扩展许可控制器以通过其他一些表单元素
我目前已经完成了以下操作,但它似乎没有工作并且正在返回ActiveModel::ForbiddenAttributesError
ios - 泛型对象的约束扩展与类型不匹配
我正在尝试对受泛型类型约束的泛型类进行扩展。这是我认为应该工作的代码的简化:
但是,我收到以下错误消息:
相同类型的要求使泛型参数“T”非泛型
我搜索了解决此问题的方法,并找到了使用协议来约束扩展而不是类型的建议:链接到文章。这样做之后,我最终得到了这个:
现在它确实让我限制了扩展,但它显示了不同的错误消息:
无法将类型“Thing<T>”的值转换为预期的参数类型“Thing<StringProtocol>”
基本上现在它知道它本身T
符合协议StringProtocol
,但是在引用整个对象时它不知道它Thing<T>
。
是否有任何解决方法,或者我应该将其作为进化提案提交给 swift 邮件列表?
注意:所有代码都是在操场上测试的,你可以复制粘贴来试试。
java - 如何扩展 JComboBox 类?
我正在写一个Java GUI。我有一些预设JComboBoxes
并且能够将它们彼此区分开来,我想扩展类并添加一个enum
变量来帮助我将它们区分开来。
这是两个标准的 MCVE JComboBoxes
:
JComboBoxes
正如上面的示例所示,当用户单击按钮时,我无法将两者区分开来。使用的一个例子BoxType
是,一个BoxType
会打印一种类型的消息,而另一个BoxType
会打印另一种消息。例如:
但是,我偶然发现了一个构造函数的问题,我尝试使用类似于我对JComboBox
and 输入 a所做的操作DefaultComboBoxModel
,但我还没有在XComboBox
课堂上实现它。
问题
如何修改XComboBox
类以便DefaultComboBoxModel
在构造元素时给它一个?
我希望能够做到这一点:
感谢您的任何帮助和/或指导!
ios - Swift 中的类扩展与子类化?
我正在使用第三方框架,该框架提供了一个实例只有属性的类。在我的应用程序中,我想为此实例添加一个额外的属性。对于这种情况,执行此操作的适当方法是什么?
a) 在我的应用程序中扩展框架的类
b)创建框架类的子类并定义我需要的新属性
提前致谢
ios - iOS - 使 swift 扩展有选择地可见
快速,如何使扩展仅对少数类而不是对所有人可见?
我在一个名为UIImage+filters.swift
. 我将仅在我的项目中的 2 个类中使用此扩展,PhotoImage
并且PhotosViewController
. 我希望扩展只对这两个类可见。我怎样才能做到这一点?
inheritance - 数据和开放不兼容,我有什么选择?
其实我有以下
open class Texture
由几个类扩展,例如Texture2d
现在,Texture
有相当多的属性
因此我想把它作为一个data
类来利用equals()
它附带的..
但不幸的是data
并且open
不兼容..(见这个问题)
我可以解决它的一种方法,我可以编写自己的equals()
方法,但这将是样板代码和肮脏的代码,这正是我通过 java 切换到 kotlin 的两个最大原因
另一种方式,由于所有class
es 扩展Texture
并没有真正添加任何东西,它们充当一种构建器(看起来 cppTexture2d
类),是否将它们用作.. 构建器(参见Kirill 的这个优秀答案)
但是由于没有什么是免费的,这个解决方案的一大缺点是我失去了Texture2d
作为一个类的可能性,并且Texture2d
有一个很好的操作符[]
来检索纹理的单个图像..
由于 kotlin 社区看起来非常活跃和支持,我想知道您是否有更好的主意..
c# - 如何导航到 HttpRouteCollectionExtension 的 MapHttpRoute 等扩展方法
在 Visual Studio 2012 中,我想从 HttpRouteCollection 类导航到 MapHttpRoute 方法。
因此,例如,如果我转到 Routes.MapHttpRoute() 的 Routes 的定义,我看到 Routes 是 HttpRouteCollection 类的一个实例。但是,如果我检查 HttpRouteCollection 的定义,我找不到 MapHttpRoute 方法。扩展方法是否隐藏?