小编Sin*_*rpa的帖子

为什么ContiguousArrayStorage <String>泄漏?

重现步骤:

创建一个新的Xcode项目:File - > New Project

添加属性:let tags = ["1", "2"]到AppDelegate

转到产品 - >配置文件

仪器显示_ContiguousArrayStorage泄漏?

如果更改let tags = ["1", "2"]let tags = "1"泄漏消失.

有人可以解释为什么[String]泄漏但String没有?

在此输入图像描述

Xcode 8.0(8A218a)

memory-leaks swift

5
推荐指数
0
解决办法
682
查看次数

Swift中的功能性思维?

我开始学习Haskell和Swift.我想知道这是否是以"功能"方式思考的正确方法?问题是创建卡片组:我需要穿过套装和排名 - 为每件套装创建具有给定套装和等级的卡片.它以"势在必行"的方式:

let suits: Array<Character> = ...
let ranks: Array<Int> = ...

var cards: [Card]
for suit in suits {
    for rank in ranks {
        cards.addObject(Card(suit: suit, rank: rank))
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用递归的纯函数,它可以工作但是,它可以用更少的代码完成吗?对我来说,Swift中的"功能"不太可读,或者说我做错了......

let cards = cardsWithSuits(suits, ranks, [Card]());

func cardsWithSuits(suits: [Character], ranks: [Int], cards: [Card]) -> [Card] {
   if suits.count == 0 { return cards }
   let suit: Character = head(suits)!
   let acc = cardsWithRanks(ranks, suit, cards)

   return cardsWithSuits(drop(1, suits), ranks, acc)
}

func cardsWithRanks(ranks: [Int], suit: Character, cards: …
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming swift

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