小编Dan*_*iel的帖子

Xcode 7 警告:调用“map”的结果未使用

我想删除我的标签的所有子视图,如下所示:

label.subviews.map { $0.removeFromSuperview() }
Run Code Online (Sandbox Code Playgroud)

这曾经在 Xcode 6 中工作。但在 Xcode 7 中我收到以下警告:

调用“map”的结果未使用

这个警告没有意义。我怎样才能压制它?

更新:我通过执行以下操作使其工作,但是,我想保持函数式编程风格并坚持使用 map { }。这也应该有效。

label.subviews.forEach { $0.removeFromSuperview() }
Run Code Online (Sandbox Code Playgroud)

warnings dictionary functional-programming swift xcode7

8
推荐指数
0
解决办法
4313
查看次数

数组包含一个完整的子数组

在Swift中,如何检查数组是否包含完整的给定子数组?例如,是否有一个contains功能如下:

let mainArray = ["hello", "world", "it's", "a", "beautiful", "day"]
contains(mainArray, ["world", "it's"])   // would return true
contains(mainArray, ["world", "it"])   // would return false
contains(mainArray, ["world", "a"])   // would return false - not adjacent in mainArray
Run Code Online (Sandbox Code Playgroud)

arrays swift

7
推荐指数
1
解决办法
1306
查看次数

使用Haskell进行Web动画的最简单包

我正在学习Haskell,并希望开发一个婴儿项目来玩它.我正在使用模型和控制器组件,但我对视图很难.我想渲染基于网络的动画(识别鼠标点击,移动物体等).看过各种包裹(Spock,Reflex等)似乎有[太多?]很多,但我找到了他们要么需要更多的努力(因为他们是RFP,这需要我首先学习这些概念)或者看起来很简单(比如Spock)但是我找不到一个简单的网络动画教程(只是一个"Hello World"). )

有人可以推荐一个简单的方法吗?同样,我想要一种快速简便的渲染方式.我的重点是学习Haskell基础知识,而不是Web编程.

animation haskell web-based

7
推荐指数
0
解决办法
314
查看次数

打破filter()函数

我想优化依赖filter()的函数.在某些情况下,我想在达到某些元素时突破它们.(例如,我可能有一个不同元素的数组.或者,我只想实现一种findFirst功能.)在这种情况下,函数继续直到数组结束似乎效率低下.

这对于循环非常简单,但我想将优化应用于函数式编程主体.(编译器本身无法执行这样的优化,因为它不知道我的数组和我的意图.)

可以这样做吗?

functional-programming filter ios swift

6
推荐指数
2
解决办法
2585
查看次数

无法推断出泛型参数"T"的参数

我想创建一个通用的辅助函数来进行一些处理.它的一个输入将是一个返回一个数组的函数.

我无法弄清楚如何做到这一点.我一直收到编译错误.我找到了帖子

无法推断出泛型参数的参数

并尝试添加...as [String]... as [Int]等,但没有运气.

func helperThatDoesSomeGenericProcessing<T>(displayedStrings: () -> [T])  -> [String]! {
    let listOfSomething: [T] = displayedStrings()
    // do something with listOfSomething
    return ["some", "resulting", "string", "from", "the", "input"]
}

func concreteFunction1() -> [AnyObject]! {
    var s: [String] = helperThatDoesSomeGenericProcessing {  // ERROR: Argument for generic parameter 'T' could not be inferred.
        var str = ["One", "Two", "Three"]
    } // tried 'as [String]' here

    // do something with s
    return s
}

func …
Run Code Online (Sandbox Code Playgroud)

generics swift

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

如何处理reduce函数的初始nil值

我想在 Swift 中学习和使用更多的函数式编程。所以,我一直在操场上尝试各种事情。不过,我不明白Reduce。基本的教科书示例有效,但我无法解决这个问题。

我有一个名为“toDoItems”的字符串数组。我想获得这个数组中最长的字符串。在这种情况下处理初始 nil 值的最佳做法是什么?我想这可能经常发生。我想写一个自定义函数并使用它。

func optionalMax(maxSofar: Int?, newElement: Int) -> Int {
    if let definiteMaxSofar = maxSofar {
        return max(definiteMaxSofar, newElement)
    }
    return newElement
}   

// Just testing - nums is an array of Ints. Works.
var maxValueOfInts = nums.reduce(0) { optionalMax($0, $1) }   

// ERROR: cannot invoke 'reduce' with an argument list of type ‘(nil, (_,_)->_)'
var longestOfStrings = toDoItems.reduce(nil) { optionalMax(count($0), count($1)) }
Run Code Online (Sandbox Code Playgroud)

reduce functional-programming swift

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

find()使用函数式编程

我想创建一个通常用于函数式编程的通用find().在函数式编程中,您不能使用数组索引和for循环.你过滤了.它的工作方式是,如果你有一个说清单

["apple", "banana", "cherry"] 
Run Code Online (Sandbox Code Playgroud)

并且您想要找到banana,然后通过创建元组将数组索引分配给列表元素

[(1, "apple"), (2, "banana"), (3, "cherry")] 
Run Code Online (Sandbox Code Playgroud)

现在,您可以过滤到"banana"并返回索引值.

我试图为此创建一个通用函数,但我收到一个错误.这个语法出了什么问题?

func findInGenericIndexedList<T>(indexedList: [(index: Int, value: T)], element: (index: Int, value: T)) -> Int? {        
    let found = indexedList.filter {   // ERROR: Cannot invoke 'filter' with an argument list of type '((_) -> _)'

        element.value === $0.value
    }

    if let definiteFound = found.first {
        return definiteFound.index
    }
    return nil
}
Run Code Online (Sandbox Code Playgroud)

更新1:我想使用上面的解决方案而不是使用find()(将被弃用)或者使用Swift 2.0 indexOf(),因为我试图遵循功能编程范例,依赖于通用函数而不是类方法.

generics functional-programming swift

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

数组append()返回一个新数组

我正在使用一个有数组的结构.我想在数组中添加一个新元素,但是,数组是不可变的,所以我不能简单地附加到它.需要创建一个新数组,附加到它,然后使用扩展数组创建一个新结构.(我知道这听起来很痛苦并且内存密集,但它更清晰,更符合功能编程范例.)

是否有一个append()之类的函数不会改变数组,而是返回一个新数组?这比必须声明一个新数组并附加到它更容易.

arrays append immutability swift

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

如何在Xcode中删除未使用的GIT分支?

我可以看到如何创建一个分支,但我想删除一个我永远不会使用的分支.在Xcode中似乎没有这样的功能,所以我尝试在终端做

git branch -d BugFixes
Run Code Online (Sandbox Code Playgroud)

但没有运气.

git version-control xcode git-branch

4
推荐指数
2
解决办法
3454
查看次数

在 Swift 中将字典值转换为不同类型

我有一本字典。我想仔细检查它并将值转换为不同的类型。.map{ }将是完美的,除非这是一个字典而不是一个数组。因此,我在堆栈溢出上找到了一个应该适用于字典的 mapPairs 函数。不幸的是我遇到了转换错误。

extension Dictionary {
    //    Since Dictionary conforms to CollectionType, and its Element typealias is a (key, value) tuple, that means you ought to be able to do something like this:
    //
    //    result = dict.map { (key, value) in (key, value.uppercaseString) }
    //
    //    However, that won't actually assign to a Dictionary-typed variable. THE MAP METHOD IS DEFINED TO ALWAYS RETURN AN ARRAY (THE [T]), even for other types like dictionaries. If you write …
Run Code Online (Sandbox Code Playgroud)

dictionary swift

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