问题标签 [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 回答
310 浏览

objective-c - Objective-C 中的扩展问题

以下是处理类扩展的代码片段。我要做的是生成一个称为内部 ID 的随机 ID(稍后由程序使用),它以加密形式存储在内存中。代码无法使用 gcc 和 clang 编译(我在 Windows 上通过 GNUStep 运行 Objective C),每个编译器都有不同的错误消息,在代码中作为注释提到。

请注意,我知道这个问题可以通过忽略扩展的使用以及在主@interface(即#import 语句之后的那个)本身中声明方法和属性来轻松解决。我使用扩展的唯一原因是这个类被其他一些“internalID”属性必须不可访问的子类继承。

我正在使用的 gcc 的编译字符串是gcc -o _exec fwdORM.m -I /GNUstep/System/Library/Headers -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base -fconstant-string-class=NSConstantString

我的 clang GNUmakefile 如下:

提前致谢。

0 投票
2 回答
3655 浏览

ios - 具有存储属性的扩展

我还在学习 Swift,我正在尝试创建一个扩展来向 UITextView 添加一个占位符。

我的想法是创建 2 个 UITextView,一个以文本作为占位符,当用户开始编辑文本时,它实际上是隐藏的,用户正在修改另一个 UITextView。

但是,我的问题不是在 UITextView 中有一个占位符,而是关于如何使用扩展来解决这个问题。
我的问题是,我必须在实现中进行哪些更改才能创建一个从调用方看起来像的扩展:
myTextView.placeholder("a placeholder text..")

到目前为止,我已经在我的 UIViewController 中创建了它,并且需要将它移动到扩展中,但是我有很多存储的属性,所以它不起作用。

这是我的代码:

正如我上面提到的,我还在学习 Swift,这个问题不是为了解决一个非常具体的问题,它不仅仅是为了学习如何解决 Swift 扩展中的问题。

注意:不要使用上面的代码来解决占位符问题,因为它不能完美运行。

0 投票
1 回答
368 浏览

ios - 从 Objective-C 到 Swift 的桥接后无法识别扩展

我对 Swift 和 Objective-C 的专家有疑问。我正在快速开发 iOS 项目。在这个项目中,我导入了一个与 Objective-C 桥一起使用的旧库(在 Objective-C 中)。

当我在我的 Swift 项目中使用这个库的某些功能时,我遇到了由于无法识别的扩展而导致的崩溃。

错误信息是:

-[NSConcreteMutableData AES128EncryptedDataWithKey:]:无法识别的选择器发送到实例

这个方法来自我库中的一个扩展类(NSData+AES128.h),它在 Swift 端无法识别。有人知道如何在 Swift 端引用这个扩展吗?我真的迷路了!!

谢谢!!

0 投票
2 回答
5249 浏览

typescript - TypeScript:如何向内置类添加静态方法

无论如何,是否可以向 , , 等类型添加一些Date静态String方法Array

例如,我想向类添加方法todayDate而在 JavaScript 中,我可以简单地向它添加一个属性,或者我可以使用 Object.defineProperty:


但无论如何我都没有找到TypeScript关于这个新静态成员的信息。我错过了什么还是我用谷歌搜索的方式不对?

0 投票
1 回答
628 浏览

swift - 从 viewcontroller 扩展中引用 viewcontroller 出口

我有两个视图控制器SymbolsVCItemsVC. 两者都有一个 UIActivityIndi​​catorView ,它spinner在每个视图控制器中都以名称显示,如下所示:

现在我需要在这些视图控制器之间编写大量共享代码,例如,在其各自的视图控制器中启动微调器的函数。所以我为 UIViewController 创建了一个扩展,如下所示:

但是,这会导致使用未解决的标识符“微调器”错误。

我错过了什么?

编辑进一步澄清:我的扩展实际上是一个 IAP。可以从任意数量的 ViewController 调用此 IAP。当其中一个 ViewController 调用扩展中的 IAP 函数时,该 IAP 函数中的程序流程决定何时启动/停止微调器。因此,它需要在扩展中完成。

0 投票
1 回答
262 浏览

swift - UIBarButtonItem 的属性“isEnabled”是类扩展中无法识别的选择器

在 Swift 4 中,我想使用实例化一个特殊对象的扩展。 这是我的代码(只有基本语句): UIBarButtonItemUIBarButtonItem

这个扩展构建没有问题。

但是,当我运行应用程序时,我在语句处收到运行时错误
self.init(customView: staticView)
日志说:

我的代码有什么问题?

0 投票
1 回答
90 浏览

ios - 访问类的属性并打印它们

我有一个这样的头文件:

我想访问和打印NSMutableDictionary *_defaultParameters;

我的方法对象中的以下属性。

如果我错了,请随时纠正我。我不完全确定@interface 中的东西是否称为属性;我正在猜测。但这就是我要访问的内容。

0 投票
1 回答
385 浏览

php - PHP 类在运行时动态扩展

是否可以在 PHP 中动态扩展类对象?这样做最优雅的方式是什么?

一些示例代码用于进一步解释:

解决此问题的一种方法是创建 ExtendedClass 的新对象并从旧对象复制所有变量。但这可以更优雅地完成吗?

0 投票
3 回答
240 浏览

python - Python Pandas:如何应用需要扩展类(日期时间)的函数?

如何将 pandasapply用于需要扩展标准类 ( datetime) 的功能?

具体来说,我想datetime_modulohttps://gist.github.com/treyhunner/6218526的优秀要点导入。

此代码扩展了标准datetime类以允许将模运算应用于datetime对象,例如

现在我需要对applypandas DataFrame 列/系列进行模运算,例如

但是 pandas 无法检测到扩展的 datetime 类(除非我只是错误地使用它):

如何进行?

0 投票
1 回答
435 浏览

objective-c - 我可以在静态库中扩展 NSString 类并在带有 Swift 的 App 中使用它吗?

我在自定义静态库 CommonLib 中扩展 NSString :

因为 CommonLib 包含一些 Swift 代码文件,所以我在 CommonLib 项目中创建了一个桥接头文件 CommonLib-Bridging-Header.h:

接下来,我将 CommonLib 链接到我的 App 项目,并在 App 项目中创建一个新文件 Node.swift:

最后,我在我的应用程序的某个地方使用它:

这时候编译就OK了!!!但是当我运行应用程序时它崩溃了:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[Swift._NSContiguousString isContainsEmoji]:无法识别的选择器发送到实例 0x60400084b340”

所以这里有什么问题吗???以及如何解决它???谢谢 ;)

(PS:我的环境Xcode 9.3.1 swift 4.1)