小编Seb*_*ski的帖子

在数组中的每个对象上调用实例方法

让我们假设这种情况:我有一个对象数组,我想在每个对象上调用实例方法.我可以这样做:

//items is an array of objects with instanceMethod() available
items.forEach { $0.instanceMethod() }
Run Code Online (Sandbox Code Playgroud)

同样的情况也是如此map.例如,我想将每个对象映射到其他mappingInstanceMethod返回值的其他对象:

let mappedItems = items.map { $0.mappingInstanceMethod() }
Run Code Online (Sandbox Code Playgroud)

有更清洁的方法吗?

例如,在Java中可以做到:

items.forEach(Item::instanceMethod);
Run Code Online (Sandbox Code Playgroud)

代替

items.forEach((item) -> { item.instanceMethod(); });
Run Code Online (Sandbox Code Playgroud)

Swift中有类似的语法吗?

swift

16
推荐指数
1
解决办法
1万
查看次数

IBInspectable和浮点值

是否可以在Attributes Inspector中设置浮点值?我的UIView中有这个属性:

@IBInspectable
var scale: CGFloat = 0.90 {
        didSet {
            setNeedsDisplay()
        }
    }
Run Code Online (Sandbox Code Playgroud)

如您所见,默认值为0.9,我想在Attributes Inspector中更改它,但它看起来像这样:

属性检查员

我只能在那里设置整数值.我错过了什么吗?

xcode ios swift

13
推荐指数
1
解决办法
3016
查看次数

运行斯坦福的CS193p Smashtag应用程序时_BSMachError

我从课程网站下载了Smasthag演示应用程序.项目构建正常(在Twitter,TwitterRequest等类的小变化之后,因为我使用最新的Xcode 7b4)并且在模拟器上工作正常(我还必须添加NSAppTransportSecurity密钥info.plist),但不在设备上 - 它不会获取推文.我在带有iOS 9 Public Beta的iPhone 6和带有iOS 8.4的iPad 2上进行了测试.此外,当app在模拟器中运行并且我更改了hashtag以进行搜索时,整个tableView会重新加载新的推文,但在控制台中我得到了这个:

2015-07-23 03:24:15.560 Smashtag[25991:4344251] _BSMachError: (os/kern) invalid capability (20)
2015-07-23 03:24:15.560 Smashtag[25991:4344251] _BSMachError: (os/kern) invalid name (15)
Run Code Online (Sandbox Code Playgroud)

应用仍然运行正常,但这个错误让我感到困扰.我对谷歌中的这个_BSMachError一无所知(只有一条孤独的印尼语推文).我不知道为什么app不能在设备上获取推文.

cs193p ios swift

11
推荐指数
3
解决办法
1万
查看次数

Spring Boot - 在application.yml中使用环境变量

我正在尝试对我的application.yml文件进行参数化,以便我可以将它放在我的项目的github repo上,但不会显示数据库连接细节.我想使用系统环境变量来做到这一点.我使用OS X El Capitan.

我在下面写了以下几行.bash_profile:

export JDBC_TODO_USER=<my-username>
export JDBC_TODO_PASS=<my-password>
Run Code Online (Sandbox Code Playgroud)

我的后续行application.yml:

spring:
   datasource:
   username: ${JDBC_TODO_USER}
   password: ${JDBC_TODO_PASS}
Run Code Online (Sandbox Code Playgroud)

我也试过了

spring:
   datasource:
   username: ${JDBC.TODO.USER}
   password: ${JDBC.TODO.PASS}
Run Code Online (Sandbox Code Playgroud)

这两个都在应用程序启动时给我一个错误: java.sql.SQLInvalidAuthorizationSpecException: Could not connect: Access denied for user '${JDBC_TODO_USER'@'<my-ip-address>' (using password: YES)

当然,当我${JDBC_TODO_USER}用我的用户名和${JDBC_TODO_PASS}密码替换时,一切正常.看起来Spring不明白我是指环境变量.我是否需要进行一些额外配置才能使其正常工作?

spring spring-boot

8
推荐指数
2
解决办法
9827
查看次数

添加点到 plot.ts,当开始,结束和频率设置

我在向 plot.ts 添加点时遇到问题。如果我按照下面的示例创建 ts 对象,一切都很好,并且点会添加到图中。

data <- ts(rnorm(100))
plot(data)
ind <- c(1,10,67)
points(ind, data[ind], pch = 19, col = 'red')
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时(我希望在 X 轴上有日期,所以我使用开始、结束和频率参数。),点不会出现在图中:

data <- ts(rnorm(100), start = c(1996,1), end = c(2004,4), frequency = 12)
plot(data)
ind <- c(1,10,67)
points(ind, data[ind], pch = 19, col = 'red')
Run Code Online (Sandbox Code Playgroud)

是否有任何选项可以将这些点添加到第一个示例中或添加日期?

附注。我几乎可以肯定,我曾经设法通过参考特定日期的时间序列的值来为绘图添加一点,但现在我无法将其带回来。

plot r time-series

5
推荐指数
1
解决办法
2827
查看次数

用于不同接口实现的共享 XCTest 单元测试

我有一些接口(协议)的两个或多个实现:

protocol Interface {
    func methodOne()
    func methodTwo()
}
Run Code Online (Sandbox Code Playgroud)

我想测试每个实现,我不想重复代码。我有几个选择,但没有一个让我满意。

第一个是创建测试用例ImplementationA并将其子类化以获得测试用例ImplementationB

class ImplementationATests: XCTestCase {

    var implToTest: Interface!

    override func setUp() {
        super.setUp()
        implToTest = ImplementationA()
    }

    func testMethodOne() {
        ...
    }

    func testMethodTwo() {
        ...
    }
}


class ImplementationBTests: ImplementationATests {

    override func setUp() {
        super.setUp()
        implToTest = ImplementationB()
    }
}
Run Code Online (Sandbox Code Playgroud)

这种方法的缺点之一是我不能进行仅适用于ImplementationA. (例如测试一些特定于该实现的辅助方法)

我想出的第二个选项是为测试用例创建共享子类:

class InterfaceTests: XCTestCase {

    var implToTest: Interface!

    func testMethodOne() {
        ...
    }

    func testMethodTwo() {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

但在这里,这些测试也将被执行,并且它们将失败,因为没有分配给 …

unit-testing xctest swift

5
推荐指数
1
解决办法
977
查看次数

标签 统计

swift ×4

ios ×2

cs193p ×1

plot ×1

r ×1

spring ×1

spring-boot ×1

time-series ×1

unit-testing ×1

xcode ×1

xctest ×1