问题标签 [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.

0 投票
4 回答
775 浏览

iphone - Objective C - 在子类中缩小实例变量类型?

是否可以缩小子类中允许的 ivar 类型。像这样的东西:

我刚刚尝试了那个确切的代码,Xcode 给了我一个编译错误。我想知道是否有办法解决它。

我正在从事的项目将有很多这种情况。我知道我可以使用强制转换来使代码正常工作。但是如果我这样做的话,我会做很多演员,我想知道是否有更好的方法。

0 投票
6 回答
1094 浏览

ios - 如何提示编译器使用 UIView 子类

我有一个 UIViewController 的子类,它负责一个 UIWebView。

由于这是一个简单的案例,我重写-(void)loadView、实例化 UIWebView 并将其分配给控制器的view属性:

这很好,直到我调用 UIWebView 的方法。例如...

...导致编译器警告...

...因为该view属性被声明为UIView.

现在警告很容易通过演员来解决......

...但我想做的是在界面中提供正确的类型提示。我尝试覆盖view属性,MyViewController.h但这也让编译器感到不安:

有没有办法告诉编译器(和我的同事)这就是我正在做的事情,并且我知道这就是我正在做的事情并且一切都好?(如果不是,我想我会坚持演员阵容。)

TIA

编辑:我尝试按照 marcus.ramsden 的回答重新声明视图属性:这消除了警告(以及对演员表的需要),但完全停止了视图的出现!我不确定为什么应该这样,因为控制器在被要求时仍会返回 UIView (子类)......

0 投票
3 回答
1714 浏览

asp.net-mvc - MVC UpdateModel 和子类与基类

我希望将 UpdateModel 方法用于在运行时检索的子类,如果有人可以阐明我是否正在对其进行总哈希和/或我是否正在尝试做是可能的。

我正在使用通用操作来控制一堆局部视图的验证;我试图避免对每个部分视图进行特定操作。

每个局部视图都有一个从基础模型派生的唯一模型:

我在 Action 上使用 FormCollection 来获取提交的表单元素及其值,这包括视图应该用来验证其请求的模型类型。忽略此示例的安全隐患,我知道它们,这是内部唯一的概念证明

这是我用来根据传递给控制器​​的模型类型返回子类的代码。

由于 StateModelClassFactory 方法的返回类型是基类,即使我实际上返回的是子类,UpdateModel 方法使用的模型绑定器也只绑定基类中的值。

关于如何解决这个问题的任何想法?

更新:

我创建了一个客户模型绑定器:

并将新的模型绑定器分配给正确的基类,以进一步了解幕后情况:

当我调试模型绑定器并检查 bindingContext 时,Model 属性表示正确的子类,但 ModelType 属性是基类的属性。我应该考虑在 BindModel 方法中更改 ModelType 吗?如果是关于如何执行此操作的任何指针,则 ModelType 上的设置器似乎已变得多余。我还注意到子类中的 SomeDateProperty 实际上在 PropertyMetadata 属性中......似乎非常接近我想要的行为。

0 投票
4 回答
346 浏览

iphone - 我的子类是否会导致内存泄漏?

我将 UINavigationController 和 UITableview 子类化,出于某种原因,我的视图正在泄漏内存,尽管我已经实现了所有正确的方法和释放调用。当我使用本机类而不是子类时,一切正常,没有泄漏。

编辑:

这是我的超类标题:

超类实现:

这是我的子类标题:

和子类实现:

什么可能导致子类中的内存泄漏?我错过了什么吗?(这里有更多相关代码。)

0 投票
5 回答
4164 浏览

c++ - 用于 C++ 的基于行的线程安全 std::cerr

什么是创建我自己的最简单的方法,std::cerr以便它是逐行线程安全的。

我最好寻找代码来做到这一点。

我需要的是,当我在控制台上实际看到一个线程生成的a line of output(以 结尾)时(并且不与其他线程的输出混合)。std::endlas a line of output


解决方案std::cerr比cstdio 慢得多我更喜欢在其构造函数获取线程安全锁并且析构函数释放它fprintf(stderr, "The message")的类内部使用。CriticalSectionLocker

0 投票
5 回答
1569 浏览

python - 就地修改子类字符串

我有以下字符串子类:

我希望这可以按如下方式工作:

相反,我得到了这个:

有没有办法就地修改字符串? 我认为这涉及到可变字符串和不可变字符串之间的区别。子类化似乎是将字符串视为可变对象的正确方法(至少根据python 文档),但我认为我在实现中缺少一些关键部分。

0 投票
1 回答
167 浏览

clr - 有人可以解释任何 CLR / DLR 子类开销吗?

如果我有一个使用符合 CLR 的代码(即在 C# 中)编写的库,并且我使用 DLR(即在 IronPython 中)对其中一些类进行子类化,与 if 相比,这对我的 CLR 库(即强制转换等)的速度有什么影响它仅使用符合 CLR 的代码进行子类化?

只要 DLR 不覆盖我的 CLR 库所需的任何代码,我希望答案是否定的。我可以编写一些代码来凭经验对答案进行基准测试,但想知道你们中是否有人知道。

非常感谢您,新年快乐!

约翰

0 投票
4 回答
1166 浏览

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相反的顺序删除子类。有人以答案的形式提出,我会接受。

0 投票
1 回答
194 浏览

python - 子类化 Satchmo 的 Category 模型,但随后出现错误“'Manager' object has no attribute 'root_categories'”

我正在使用 Satchmo 作为我目前正在构建的网站的一部分。目前我正在尝试向 Satchmo 类别类添加更多功能,但显然我不会对 Satchmo 文件进行任何更改。所以,我认为继承 Category 类会给我一个新类,其中包含所有 Satchmo Category 属性和方法,同时允许我添加自己的。但是,要么 Python 子类化不能那样工作,要么我做错了。这是我用来子类分类的代码:

我通常可以从 Category 类中使​​用的方法之一是:

但是,当我尝试访问

我收到以下错误:

谁能指出我解决这个问题的正确方向?

0 投票
1 回答
2463 浏览

android - 如何在 Android 中正确编写和使用 View 子类?

我正在尝试实施此处找到的解决方案之一。

我的问题是我不确定我是否正确地实现和使用了我的子类。我在这里对 WebView 进行子类化:

它应该是私有的,但暂时忘记这一点。我的一个活动中有代码,该代码在视图层次结构中有一个内部 webview。在该活动的 onCreate 方法之外。

在 onCreate 方法中,我有:myWebView mapImage = (myWebView) findViewById(R.id.mapcroppic);

这给了我该调用的 ClassCastException。(xml布局文件需要使用<myWebView>吗?可以吗?)如何正确使用这个?