/ / स्विफ्ट: एनएसडीएटी को समय अंतराल पर फ़िल्टर करना - आईओएस, स्विफ्ट, डेटपिकर, एनएसडीएटी, एनएसकेडर

स्विफ्ट: एनएसडीएटी को समय अंतराल पर फ़िल्टर करना - आईओएस, स्विफ्ट, डेटपिकर, एनएसडीएटी, एनएसकेडर

मेरे पास एक सरणी है NSDate() कि उपयोगकर्ता एक के साथ जोड़ता है datePicker, तो इस तारीख को वर्तमान सप्ताह, वर्तमान माह और वर्ष द्वारा फ़िल्टर करने की आवश्यकता है। मैंने उपयोग करने की कोशिश की है NSCalendar लेकिन मैं इसे काम नहीं कर सका। मैं इसे समूह बनाना चाहता हूं NSDates अलग-अलग सरणी में उस समय अंतराल के आधार पर जो वे हैं।

उत्तर:

जवाब के लिए 0 № 1

एक तरीका है बस उपयोग करना है NSPredicate:

NSArray *arrayOfDates = @[
[NSDate dateWithTimeIntervalSince1970:0],
[NSDate dateWithTimeIntervalSince1970:100],
[NSDate dateWithTimeIntervalSince1970:200]
];

NSDate *leftLimit = [NSDate dateWithTimeIntervalSince1970:50];
NSDate *rightLimit = [NSDate dateWithTimeIntervalSince1970:150];
NSPredicate *dateIntervalPredicate = [NSPredicate predicateWithFormat:@"self > %@ && self < %@", leftLimit, rightLimit];
NSArray *result = [array filteredArrayUsingPredicate:dateIntervalPredicate];
NSLog(@"Result: %@", result);

बेशक, आप इसे एक समारोह में लपेट सकते हैं, यह सिर्फ एक उदाहरण है।