小编use*_*240的帖子

Swift 4 - 用数组过滤数组

我有一个具有 id 的条目列表,我想将它们过滤到具有与 selectedIDs 中的 ID 之一匹配的 Entry.id 的条目。有没有办法用过滤器来做到这一点,或者我必须使用 for 循环?

struct Entry {
    let id: String
}
var allEntries = [Entry]()
var selectedIDs = [String]
Run Code Online (Sandbox Code Playgroud)

例如

allEntries = [Entry(id: "1"), Entry(id:"2"), Entry(id:"3"), Entry(id:"4")]
selectedIDs = ["1", "3"]

// return selectedEntries
var selectedEntries = [Entry(id: "1"), Entry(id: "3")]
Run Code Online (Sandbox Code Playgroud)

higher-order-functions swift swift4

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

如何将开关与枚举一起用于字符串

对不起,这个非常基本的问题,但我想弄清楚如何使用 switch 语句来检查它是否是某个字符串。

例如,如果我有一个 AnimalType 枚举,然后我有一个动物结构:

enum AnimalType: String {
   case Mammal = "Mammal"
   case Reptile = "Reptile"
   case Fish = "Fish"
}

struct Animal {
   let name: String
   let type: String
}
Run Code Online (Sandbox Code Playgroud)

如果我想查看一个 Animals 列表然后有一个 switch 语句,我将如何将 Animal.Type 字符串与枚举匹配?我也不想将 Animal 结构更改为让 type: AnimalType 。

switch Animal.type {
case :
...// how do I match the string to the enum?
Run Code Online (Sandbox Code Playgroud)

swift

5
推荐指数
2
解决办法
3850
查看次数

无法使用Reduce读取未定义的属性

我有一个带有销售数字的对象,想要返回最高销量的名称和销售额,但我不断收到无法读取未定义属性的错误:

var salesTeam = [{name: {first: 'aleen', last: 'atkins'}, age: 26, sales: '$2314'},
        {name: {first: 'alvaro', last: 'angelos'}, age: 55, sales: '$1668'},
        {name: {first: 'denese', last: 'dossett'}, age: 29, sales: '$9248'},
        {name: {first: 'douglas', last: 'denney'}, age: 53, sales: '$5058'},
        {name: {first: 'earline', last: 'erickson'}, age: 19, sales: '$18876'},
        {name: {first: 'herman', last: 'hazell'}, age: 25, sales: '$2746'},
        {name: {first: 'homer', last: 'hirth'}, age: 26, sales: '$474'},
        {name: {first: 'hwa', last: 'heidt'}, age: 53, sales: '$9607'},
        {name: {first: 'hyon', last: …
Run Code Online (Sandbox Code Playgroud)

javascript higher-order-functions

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

如何将参数传入@objc 函数

我在 tableView 中有一个单元格,带有一个我想向其添加操作的按钮。

该按钮将是一个电子邮件地址。当按钮被按下时,我想触发一个委托,让另一个 ViewController 打开一封电子邮件。但是,我需要能够将电子邮件作为参数传入,而 Swift 似乎不允许我这样做。

相关代码如下:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let row = self.sections[indexPath.section].rows[indexPath.row]
       switch row {
       case .Email:
            cell.infoLabel.setTitle(cellInfo.email, for: .normal)
            cell.infoLabel.addTarget(self, action: #selector(emailPressed(recipient: cellInfo.email!)), for: .touchUpInside)
            cell.imageType.image = UIImage(named: "Email")
       }
}

@objc func emailPressed(recipient: String){
        self.delegate?.dataController(self, recipientEmail: recipient)
    }

protocol DataControllerDelegate: class {
    funcdataController(_ DataController: DataController, recipientEmail: String)
}
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:“'#selector' 的参数未引用 '@objc' 方法、属性或初始值设定项”

有没有办法将电子邮件传递给@objc 函数,以便它可以输入到委托函数中?

delegates selector uitableview swift swift4

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

带按钮点击功能的jQuery

我刚刚开始 Web 开发,并且有一个函数 loadTweets 可以从另一个文件中提取并显示,当我摆脱按钮并直接将其作为匿名函数运行时,它可以工作,但是,由于某种原因,按钮确实可以无法调用该函数。

任何帮助将不胜感激,谢谢!

<html>
  <head>
    <script src="jquery.js"></script>
    <script src="data_generator.js"></script>

  </head>
  <button type = "button" onclick="loadTweets"> Load </button>
  <body>
    <script>
      $(document).ready(function(){
        var loadTweets = function(){
          var $body = $('body');
          $body.html('');
          var index = streams.home.length - 1;
          while(index >= 0){
            var tweet = streams.home[index];
            var $tweet = $('<div></div>');
            $tweet.text('@' + tweet.user + ': ' + tweet.message);
            $tweet.appendTo($body);
            index -= 1;
          }
        }
      });
    // });



    </script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

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

Swift-从字符串中仅获取字母数字字符

我正在尝试为String该类创建一个内部函数,以仅获取AlphaNumeric字符并返回一个字符串。我在使用正则表达式将匹配项转换回字符串时遇到了一些错误。有人可以告诉我如何修复代码,或者有更简单的方法吗?

我想要这样的东西

let testString = "_<$abc$>_"
let alphaNumericString = testString.alphaNumeric() //abc
Run Code Online (Sandbox Code Playgroud)

到目前为止,我有:

extension String {
    internal func alphaNumeric() -> String {
        let regex = try? NSRegularExpression(pattern: "[^a-z0-9]", options: .caseInsensitive)
        let string = self as NSString
        let results = regex?.matches(in: self, options: [], range: NSRange(location: 0, length: string.length))
        let matches = results.map {
            String(self[Range($0.range, in: self)!])
        }
        return matches.join()
    }
}
Run Code Online (Sandbox Code Playgroud)

regex swift swift4

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

Swift-tableView中的可移动行仅在一个区域内,而不在两个区域之间

有没有一种方法可以防止tableView中的单元格移动到其他部分?

sections具有用于不同类型的细胞的数据,所以当用户尝试将细胞拖动到不同的部分中的应用程序崩溃。

我只想允许用户在单元内移动单元格,而不能在单元格之间移动单元格。

相关代码如下:

override func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
    return true
}

override func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
    let reorderedRow = self.sections[sourceIndexPath.section].rows.remove(at: sourceIndexPath.row)
    self.sections[destinationIndexPath.section].rows.insert(reorderedRow, at: destinationIndexPath.row)

    self.sortedSections.insert(sourceIndexPath.section)
    self.sortedSections.insert(destinationIndexPath.section)
}
Run Code Online (Sandbox Code Playgroud)

uitableview ios swift

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

Swift-从月,日,年组件中获取日期

如何将DateComponents转换为Date对象。目前,我有以下代码

Calendar.date(from: DateComponents(year: 2018, month: 1, day: 15))
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误说明 "No 'date' candidates produce the expected contextual result type 'Date'

抱歉,这个基本问题很严重,但是我仍然在如何在Swift中处理日期方面仍在努力

date ios swift swift4

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