小编Kam*_*ran的帖子

Swift vs Kotlin对排序数组的表现

我试图排序尺寸亿的阵列中的SwiftKotlin,我可以看到它们之间的巨大的性能差距.对于这个数字,Kotlin几乎18Swift(在我的机器上).

我记录了一些结果,我发现当尺寸大约为10000或更小时swift更快但是一旦数量增加,Swift与之相比变得非常慢Kotlin.

Swift和Kotlin的代码如下,

迅速

let n = 100000000
var arr = Array(repeating: 0, count: n)

for i in 1...n {
    arr[i-1] = Int(arc4random_uniform(UInt32(n)))
}

//Record time before sort
arr.sort()
//Record time after sort
Run Code Online (Sandbox Code Playgroud)

科特林

val n = 100000000
val arr = IntArray(n)

for (i in 1..n) {
    arr[i-1] = Random().nextInt(n)
}

//Record time before sort
arr.sort()
//Record time after sort
Run Code Online (Sandbox Code Playgroud)

两者记录的时间如下,

迅速

Size: 1000    Time:  0.001 …
Run Code Online (Sandbox Code Playgroud)

sorting android ios kotlin swift

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

UITextField Editing Changed 未调用

我有一个UITextField zipTextField并用于UIPicker更改文本。我想知道zipTextField 何时更改。

我把这个程序放在我的 ViewController

@IBAction func textFieldEditingDidChange(sender: AnyObject){
    print("textField:\(zipTextField.text)")
}
Run Code Online (Sandbox Code Playgroud)

并通过编辑更改的事件 连接到视图连接到视图

但是当zipTextField改变时函数没有调用

否则,当我连接textFieldEditingDidChangeEditing Did EndEditing Did Begin 时, 将调用textFieldEditingDidChange

ios swift

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

Swift列举了Kotlin中的等价物

在3x3矩阵表示中,我可以找到两个对角线的总和,其中一个衬垫Swift如下,

let array = [
   [1, 2, 3],
   [4, 5, 6],
   [-7, 8, 9]
]
let d1 = array.enumerated().map({ $1[$0] }).reduce(0, +)
let d2 = array.reversed().enumerated().map({ $1[$0] }).reduce(0, +)
print(d1) // prints 15
print(d2) // prints 1
Run Code Online (Sandbox Code Playgroud)

我能找到mapreduce当量KotlinflatMapfold,但未能找到enumerated.

我们如何才能实现与更高阶函数类似Kotlin

kotlin kotlin-extension

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

多个警报迅速叠加

现在我收到错误:警告:尝试在 CollectionViewController 上呈现 UIAlertController:0x7f9af9016200:0x7f9af750d620 已经呈现(空)

有没有办法快速堆叠警报?有我的代码,如果项目发布时间超过一天,它会显示警报。我尝试过两种方法但没有成功。

  1. 暂停 for 循环,直到我按是或否。
  2. 在彼此之上显示许多警报

任何解决方案如何管理做到这一点?

for p in json! {
     if self.checkDaysPassed(postDate: p["uploadedTime"] as! String) > 1 {
     print("more than one day passed, sell item?")

     let alert = UIAlertController(title: "Sell this item", message: "This item has been unused for a day", preferredStyle: .alert)
     alert.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext
     alert.addAction(UIAlertAction(title: "Yes", style: .default){ (action) in
           print("pressed yes")
     })
     alert.addAction(UIAlertAction(title: "No", style: .cancel){ (action) in
          print("pressed no")
     })
     self.present(alert, animated: true)
    }
}
Run Code Online (Sandbox Code Playgroud)

alert swift uialertcontroller uialertaction

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

快速将 Codable/Encodable 转换为 JSON 对象

最近我加入Codable了一个项目并JSON从符合Encodable我的类型中获取一个对象,我想出了这个扩展,

extension Encodable {

    /// Converting object to postable JSON
    func toJSON(_ encoder: JSONEncoder = JSONEncoder()) -> [String: Any] {
        guard let data = try? encoder.encode(self),
              let object = try? JSONSerialization.jsonObject(with: data, options: .allowFragments),
              let json = object as? [String: Any] else { return [:] }
        return json
    }
}
Run Code Online (Sandbox Code Playgroud)

这很有效,但有没有更好的方法来实现同样的目标?

ios swift codable encodable

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

如何在 iPhone X 上获取 tabBar 的高度

我在ViewController上面添加tabBar这样的

 cardViewController = storyboard?.instantiateViewController(withIdentifier: "CardViewController") as? CardViewController
    addChildViewController(cardViewController)
    cardViewController.didMove(toParentViewController: self)

    view.addSubview(cardViewController.view)

    cardViewController.view.frame = CGRect(x: 0, y: view.frame.height - cardHandlAreaHight - tabBarHight,
                                           width: view.bounds.width, height: cardHight)

    cardViewController.view.clipsToBounds = true
Run Code Online (Sandbox Code Playgroud)

我得到的 tabBar 的大小是这样的:

tabBarHight = tabBarController?.tabBar.frame.size.height
Run Code Online (Sandbox Code Playgroud)

这适用于所有 iPhone 但不适用于 iPhone X 如何解决这个问题?

在此处输入图片说明

ios swift

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