问题标签 [subclassing]
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.
iphone - Objective C - 在子类中缩小实例变量类型?
是否可以缩小子类中允许的 ivar 类型。像这样的东西:
我刚刚尝试了那个确切的代码,Xcode 给了我一个编译错误。我想知道是否有办法解决它。
我正在从事的项目将有很多这种情况。我知道我可以使用强制转换来使代码正常工作。但是如果我这样做的话,我会做很多演员,我想知道是否有更好的方法。
ios - 如何提示编译器使用 UIView 子类
我有一个 UIViewController 的子类,它负责一个 UIWebView。
由于这是一个简单的案例,我重写-(void)loadView
、实例化 UIWebView 并将其分配给控制器的view
属性:
这很好,直到我调用 UIWebView 的方法。例如...
...导致编译器警告...
...因为该view
属性被声明为UIView
.
现在警告很容易通过演员来解决......
...但我想做的是在界面中提供正确的类型提示。我尝试覆盖view
属性,MyViewController.h
但这也让编译器感到不安:
有没有办法告诉编译器(和我的同事)这就是我正在做的事情,并且我知道这就是我正在做的事情并且一切都好?(如果不是,我想我会坚持演员阵容。)
TIA
编辑:我尝试按照 marcus.ramsden 的回答重新声明视图属性:这消除了警告(以及对演员表的需要),但完全停止了视图的出现!我不确定为什么应该这样,因为控制器在被要求时仍会返回 UIView (子类)......
asp.net-mvc - MVC UpdateModel 和子类与基类
我希望将 UpdateModel 方法用于在运行时检索的子类,如果有人可以阐明我是否正在对其进行总哈希和/或我是否正在尝试做是可能的。
我正在使用通用操作来控制一堆局部视图的验证;我试图避免对每个部分视图进行特定操作。
每个局部视图都有一个从基础模型派生的唯一模型:
我在 Action 上使用 FormCollection 来获取提交的表单元素及其值,这包括视图应该用来验证其请求的模型类型。忽略此示例的安全隐患,我知道它们,这是内部唯一的概念证明
这是我用来根据传递给控制器的模型类型返回子类的代码。
由于 StateModelClassFactory 方法的返回类型是基类,即使我实际上返回的是子类,UpdateModel 方法使用的模型绑定器也只绑定基类中的值。
关于如何解决这个问题的任何想法?
更新:
我创建了一个客户模型绑定器:
并将新的模型绑定器分配给正确的基类,以进一步了解幕后情况:
当我调试模型绑定器并检查 bindingContext 时,Model 属性表示正确的子类,但 ModelType 属性是基类的属性。我应该考虑在 BindModel 方法中更改 ModelType 吗?如果是关于如何执行此操作的任何指针,则 ModelType 上的设置器似乎已变得多余。我还注意到子类中的 SomeDateProperty 实际上在 PropertyMetadata 属性中......似乎非常接近我想要的行为。
iphone - 我的子类是否会导致内存泄漏?
我将 UINavigationController 和 UITableview 子类化,出于某种原因,我的视图正在泄漏内存,尽管我已经实现了所有正确的方法和释放调用。当我使用本机类而不是子类时,一切正常,没有泄漏。
编辑:
这是我的超类标题:
超类实现:
这是我的子类标题:
和子类实现:
什么可能导致子类中的内存泄漏?我错过了什么吗?(这里有更多相关代码。)
c++ - 用于 C++ 的基于行的线程安全 std::cerr
什么是创建我自己的最简单的方法,std::cerr
以便它是逐行线程安全的。
我最好寻找代码来做到这一点。
我需要的是,当我在控制台上实际看到一个线程生成的a line of output
(以 结尾)时(并且不与其他线程的输出混合)。std::endl
as a line of output
解决方案:std::cerr
比cstdio 慢得多。我更喜欢在其构造函数获取线程安全锁并且析构函数释放它fprintf(stderr, "The message")
的类内部使用。CriticalSectionLocker
python - 就地修改子类字符串
我有以下字符串子类:
我希望这可以按如下方式工作:
相反,我得到了这个:
有没有办法就地修改字符串? 我认为这涉及到可变字符串和不可变字符串之间的区别。子类化似乎是将字符串视为可变对象的正确方法(至少根据python 文档),但我认为我在实现中缺少一些关键部分。
clr - 有人可以解释任何 CLR / DLR 子类开销吗?
如果我有一个使用符合 CLR 的代码(即在 C# 中)编写的库,并且我使用 DLR(即在 IronPython 中)对其中一些类进行子类化,与 if 相比,这对我的 CLR 库(即强制转换等)的速度有什么影响它仅使用符合 CLR 的代码进行子类化?
只要 DLR 不覆盖我的 CLR 库所需的任何代码,我希望答案是否定的。我可以编写一些代码来凭经验对答案进行基准测试,但想知道你们中是否有人知道。
非常感谢您,新年快乐!
约翰
delphi - Delphi:如何以相反的顺序删除子类?
Mike Lischke 的TThemeServices
子类Application.Handle
,以便它可以WM_THEMECHANGED
在主题更改时接收来自 Windows(即)的广播通知。
它继承了Application
对象的窗口:
子类化的窗口过程然后按照它应该的那样发送WM_DESTROY
消息,删除它的子类,然后传递WM_DESTROY
消息:
该TThemeServices
对象是一个单例,在单元完成期间被销毁:
这一切都很好——只要 TThemeServices 是唯一一个将应用程序的句柄子类化的人。
我有一个类似的单例库,它也想挂钩Application.Handle
,这样我就可以接收广播:
当单元完成时,我的单例也同样被删除:
现在我们来解决这个问题。我不能保证某人可能选择访问ThemeServices
或的顺序DWM
,每个都应用他们的子类。我也不知道德尔福最终确定单位的顺序。
子类以错误的顺序被删除,并且应用程序关闭时发生崩溃。
怎么修?我如何确保我的子类化方法保持足够长的时间,直到其他人在我完成后完成?(毕竟我不想泄漏内存)
也可以看看
更新:我看到 Delphi 7 通过重写解决了这个错误TApplication
。><
呸呸呸
换句话说:尝试继承 TApplication 是一个错误,Borland 在采用 Mike 的TThemeManager
.
这很可能意味着没有办法以TApplication
相反的顺序删除子类。有人以答案的形式提出,我会接受。
python - 子类化 Satchmo 的 Category 模型,但随后出现错误“'Manager' object has no attribute 'root_categories'”
我正在使用 Satchmo 作为我目前正在构建的网站的一部分。目前我正在尝试向 Satchmo 类别类添加更多功能,但显然我不会对 Satchmo 文件进行任何更改。所以,我认为继承 Category 类会给我一个新类,其中包含所有 Satchmo Category 属性和方法,同时允许我添加自己的。但是,要么 Python 子类化不能那样工作,要么我做错了。这是我用来子类分类的代码:
我通常可以从 Category 类中使用的方法之一是:
但是,当我尝试访问
我收到以下错误:
谁能指出我解决这个问题的正确方向?
android - 如何在 Android 中正确编写和使用 View 子类?
我正在尝试实施此处找到的解决方案之一。
我的问题是我不确定我是否正确地实现和使用了我的子类。我在这里对 WebView 进行子类化:
它应该是私有的,但暂时忘记这一点。我的一个活动中有代码,该代码在视图层次结构中有一个内部 webview。在该活动的 onCreate 方法之外。
在 onCreate 方法中,我有:myWebView mapImage = (myWebView) findViewById(R.id.mapcroppic);
这给了我该调用的 ClassCastException。(xml布局文件需要使用<myWebView>
吗?可以吗?)如何正确使用这个?