我很难在标题中定义我的问题,所以如果我的标题不合适那么请纠正我,所以我有一个
名为NSArray
的{{1}}是从results
获取的,在此数组中,项目具有CoreData
密钥,该密钥属于NSDate类型。我想根据date
键上的月份来预测NSArray
,并且能够手动执行此操作,这就是我这样做的方式:
Date
此处 let predicated = NSPredicate(format: "date >= %@ AND date <= %@", start, End)
var filtered = results.filteredArrayUsingPredicate(predicated)
和start
是end
,它们是给定月份的第一个和最后一个日期,表示我预测的类似于&#34;给我的结果介于1月1日到1月之间31 jan&#34;并且工作正常
但是我希望以某种方式预测我的整个NSdate
数组,以便我不必提供日期范围,就像一个将result
带给我的函数输出变量为月份,如
NSArray
请告诉我使用这种方法尝试做什么甚至是可能的,如果是的话,请给我一些暗示或指示如何做到这一点它会对我有帮助< / p>
为了更好地理解,请参阅示例:
func filterResultArray(NSArray) -> name of months with results {
// here predicate the whole array and add them to the founded months variable
}
print( "\(filterResultArray(resultsArray) )") // should print :
jan = 5 , feb = 18 , march = 5 , may = 87
现在我如何过滤这个数组,以便我得到类似的结果:
example - myArray = [ "1,01,2016", "4,01,2016" ,"28,01,2016", "6,02,2016" "25,02,2016", "29,02,2016" "4,03,2016", "4,04,2016" "10,04,2016", "24,04,2016" "9,05,2016", "29,05,2016" "17,05,2016", "24,05,2016" "12,06,2016", "13,06,2016" ]
答案 0 :(得分:1)
@Joshua给你的解决方案看起来非常优雅 - 假设你只对月份感兴趣 - 意思是2016年3月与2015年3月相同 - 然后当你将数据解析为{{1只需创建一个myArray
数组并删除中间数据元素即可获得月份。
它会看起来像这样 -
myMonths
如果您执行需要在计数中包含年份,那么只需附加字符串即可获得let dateComponents = resultDate.componentsSeparatedByString(",")
myMonths.append(dateComponents[1])
或"201603"