Ich bin ein Neuling sowohl bei Swift (und Codierung im Allgemeinen) und Stack-Überlauf. SO war enorm hilfreich beim Code-Lernen, also vielen Dank an die SO-Community für tolle Fragen und Antworten. HierFinden Sie Übereinstimmungen in NSDate Array - Swift
geht meine erste Frage SO ...
Ich habe meine Räder für ein paar Tage jetzt auf diese Herausforderung zu spinnen. Ich habe mehrere Lösungsvorschläge gelesen und ausprobiert, aber keiner von ihnen hat bisher für mich funktioniert.
Ich habe eine dynamische NSDate-Array, die von einer Web-API (mit früheren Code) abgerufen wird.
[2016-05-01 03:27:22 +0000, 2016-05-01 03:27:24 +0000, 2016-05-01 03:27:25 +0000, 2016-05-01 03:27:27 +0000, 2016-05-03 12:48:07 +0000, 2016-05-03 12:48:09 +0000, 2016-05-03 12:48:11 +0000, 2016-05-03 12:48:13 +0000, 2016-05-03 19:52:46 +0000, 2016-05-03 19:52:51 +0000, 2016-05-03 19:52:56 +0000, 2016-05-04 00:37:27 +0000, 2016-05-04 00:37:30 +0000, 2016-05-04 12:36:17 +0000, 2016-05-04 12:36:19 +0000, 2016-05-04 12:46:26 +0000, 2016-05-04 12:46:28 +0000, 2016-05-04 17:39:31 +0000, 2016-05-04 17:39:34 +0000, 2016-05-04 17:54:24 +0000, 2016-05-04 23:46:20 +0000]
ich eine Methode oben, dass irgendwelche Elemente in dem Array sind, wenn dort zu sehen, durch die obige Anordnung und prüft, Schleifen, die innerhalb der letzten x Minuten timestamped werden.
func prepareJSONData1() {
let currentDate = NSDate()
var startDate = currentDate.dateByAddingTimeInterval(-5 * 60) //sets the start date to 5 minutes prior to current time
while startDate.compare(currentDate) != NSComparisonResult.OrderedDescending {
var i = Int(0) //setting up a counter
for i in 0...self.quantumArrayNSDate.count - 1 {
if startDate == self.quantumArrayNSDate[i] {
print("Data entry found for \(startDate) timestamp")
}
self.i += 1
}
startDate = startDate.dateByAddingTimeInterval(1) //increment through the NSDate range
}
}
Ich kann nicht diesen Code erhalten, um passende Artikel ganz gleich zurückgeben, wie weit zurück habe ich den Starttermin (auch wenn ich wieder ein paar Monate gehen). Ich vermute, dass ich nicht die startdate Variable richtig einstellen, denn wenn ich dieses Stück Code zu ändern:
startDate = quantumArrayNSDate.first!
der Code gibt in dem Array alle Elemente Dann, als ich erwarten würde es.
Ich habe auch versucht, diesen anderen Ansatz ohne Erfolg:
let calendar = NSCalendar.currentCalendar()
let startDate = calendar.dateByAddingUnit(.Minute, value: -5, toDate: NSDate(), options: [])! // <- this didn't work
ich wäre super dankbar, wenn jemand darauf hinweisen könnte, was ich falsch mache und eine Lösung vorschlagen. Vielen Dank!
Vielen Dank, Martin. Lief wie am Schnürchen! –