问题标签 [convenience-methods]

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

objective-c - 使用有限精度将两个 NSNumber 与浮点值进行比较的便捷方法是什么?

将几个 NSNumber 与浮点值进行比较以查看它们是否大致相等(精确到小数点后两位即可)的 Objective-C 便捷方法是什么?

如果有一个选项不会随机更改数字,我会使用浮点数以外的东西。但无论如何我已经在使用花车所以......

我想一定有类似的东西:

[myNumber isEqualTo:myOtherNumber withPrecision:2];

但实际上,令人惊讶的是我找不到这样一种方便的方法。我在这里想念什么?

将这两个数字转换为 NSDecimal 是否有帮助?

0 投票
2 回答
194 浏览

haskell - 开发具有更快反馈的 Yesod 应用程序(解释模式)?

当我使用yesod devel它时,每次更改模板文件或任何模块时都会重新编译整个应用程序。

有什么方法可以更快地获得开发反馈?我的意思是不要重新编译,而是使用ghciYesod或其他东西?

0 投票
1 回答
162 浏览

haskell - 是否有使用 Haskell Persistent 执行模型验证的便捷方法?

有什么方法可以在每个之前执行自定义验证(某种钩子),update/replace或者insert在验证失败时返回一条消息?就像它可以在ActiveModel.

我可以只写一个验证函数,但我需要重写我更新或插入这个模型的所有地方。

0 投票
1 回答
130 浏览

c++ - 使用 MinGW 进行 C++ 的 DLL 管理?

我最近决定在 Windows 7 上使用 MinGW 来看看使用 C++ 的 2D 图形。

由于我只需要 2D 图形,因此任何库或多或少都是可行的(OpenGL、SDL 等)。我决定快速浏览一些并检查他们使用 MinGW 在 Windows 上工作是多么容易。

我很快注意到我测试的每个库(Cairo、SDL 和 GTK+)都需要大量的 dll 文件才能工作。即使从教程之类的东西编译了一个简单的程序后,它也会给我 5 或 6 个不同的 dll 错误,迫使我将它们全部复制到我的程序的工作目录中以使其运行。

我的程序当然可以工作,但是仅仅为了一个简单的程序就拥有这么多的 DLL 是非常麻烦的。使程序在其他人的计算机上运行需要将所有这些 DLL 连同它作为单独的文件一起提供,以及我全局安装但其他人没有的其他 DLL。

由于所需的所有 DLL,像 C++ 这样流行的东西使用起来很烦人,这似乎很奇怪……我做错了什么吗?这个问题有什么神奇的解决方案吗?一些工具可以最大限度地减少甚至完全消除这些并发症?为我的应用程序使用更少的 DLL 会很酷。当然,我不能完全忽略 DLL,但至少将数量减少到一个(一个库 = 一个 DLL)或者有可能将它们组织在自己的子文件夹中会很棒。

0 投票
2 回答
1034 浏览

objective-c - Objective-C中init方法的返回类型

在编写 Objective-C 类时,我使用以下便捷方法结构:

MyClass*便利方法应该指定返回类型而不是有什么理由id?或者该init方法应该指定任一返回类型?

这似乎是 Objective-C 代码中的常见模式。直到现在才真正考虑过。

0 投票
4 回答
19710 浏览

ios - 如何在自定义初始化程序中快速返回 nil?

我正在尝试快速编写自定义初始化程序。我有这样的事情:

“return nil”行给了我这个错误:“找不到接受提供的参数的 '__conversion' 的重载”

所以,我想要完成的只是让这个便利初始化程序在调用者没有提供有效数据源的情况下返回 nil。

我在这里做错了什么?

谢谢

0 投票
0 回答
39 浏览

ios - @implementation 便利方法的好处

我一直在查看 Apple 提供的示例代码,偶然发现了一些我没有了解的有趣的东西。在.m文件的子类中,有多个用@implementation. 最后一个是@implementation我所期望的通常的 - 所有代码所在的类实现,但上面是几个简短的实现,每个实现都定义了一个方法。它们以这种格式声明:@implementation ClassName (Convenience). 其中定义的方法与其他方法的格式相同,但它们以 . 为前缀aapl_。当然,在每个@implementation定义之后@end,。调用这些方法的方式是创建一个实例ClassName然后调用该方法,就像使用标准 API 一样:[anInstance aapl_thisInterestingMethod:aParameter];

所以这似乎是一种在不创建类别的情况下向类添加方法的方法,您使用类的实例调用它,并且它仅特定于该文件。您可以使用self来引用调用参数。

我的问题是:

  • 还有比这更多的吗?
  • 为什么要在末尾附加(便利)?
  • 添加前缀是否aapl_只是为了表明这不是标准 API 的一部分,而是我们自己的方法?
  • 为什么这比像通常那样定义一个方法,在调用参数中接受作为常规参数更好?例如:[self anInterestingMethod:myInstance withParameter:aParameter];
  • 这些类型的方法/实现叫什么,我还应该知道什么?

编辑:这个问题与被标记为重复的问题完全没有关系... @interface is not @implementation

0 投票
1 回答
195 浏览

c++ - 制作一个库,以便最终用户不需要原始库

我正在使用 C++ 11 制作一个库,而我的库使用了其他几个库,例如 FreeImage 和 GLFW。我希望能够以不需要最终用户安装其他库的方式分发我的库;这将防止版本控制问题并让生活变得轻松。

我在 windows 下使用 Visual Studio 2013 Pro 进行开发,尽管库代码是跨平台的(所以我最终应该能够为 OS X 和 Linux 构建版本)。我现在只担心让它在 Windows 下工作。

目前,我正在制作一个静态库,并将依赖库添加到解决方案资源管理器中的项目中。我可以在其他项目中使用这个库,但我必须链接到依赖库。

我想要的是Linux下的“便利库”,但我不确定。

该项目旨在作为我学生的教育资源,我打算将其开源并提供完整的项目和预构建的二进制文件。如果预构建的二进制文件不需要安装我正在使用的每个库,那就太好了;它们本身都是开源项目并且免费提供,但我不禁认为将所有内容整合到一个库中对最终用户来说非常方便。

我已经尝试在互联网上四处寻找有关这方面的信息,但我淹没在仅 Linux 解决方案的搜索结果中(即使那样,也不一定与我的确切问题有关)。

提前谢谢你们,女士们,先生们。

0 投票
2 回答
296 浏览

objective-c - 便利类方法 vs alloc init

我知道,如果您手动分配和初始化对象,它们可能会更有效地执行(ARC 应该已经处理了大部分,对吗?),但是,如果您只是为了方便使用,性能上真的有那么大的差异吗?每次创建对象的类方法?

例子:

对比

0 投票
1 回答
302 浏览

swift - 如何在swift中使用便利初始化程序设置非可选变量?

我有一个 UITableViewController 子类,如果没有模型,它就不应该工作。如果没有模型,则显示视图实际上没有任何目的。

所以我在想,我的模型属性不应该是一个可选值。我想要这样的安全感。所以我正在尝试创建一个方便的 init 来传递我的模型。

我的问题是我收到了这个错误:

这是有道理的。如果要调用 init(),则不会按照非可选属性的要求设置属性。

我要克服这个吗?

请记住,该模型是我的实际模型,在此处设置默认值将毫无意义,并且再次破坏了我正在寻找的安全性。

谢谢!

小记:这样做,也不行。无论如何都没有设置模型的实例。

编辑:下面的方法似乎很有希望

但是,它给了我这个错误:

最后,这里的解决方案是调用: