我有一个具有 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) 对不起,这个非常基本的问题,但我想弄清楚如何使用 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) 我有一个带有销售数字的对象,想要返回最高销量的名称和销售额,但我不断收到无法读取未定义属性的错误:
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) 我在 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 函数,以便它可以输入到委托函数中?
我刚刚开始 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) 我正在尝试为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) 有没有一种方法可以防止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) 如何将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中处理日期方面仍在努力