为了账号安全,请及时绑定邮箱和手机立即绑定

相亲神器calendar的操作报告错误

let now = NSData()        let components = gregorian?.components(NSCalendarUnit.Year, fromDate: birthday.date, toDate: now, options: NSCalendarOptions(0)) 在toDate: now这里提示Cannot convert value of type 'NSData' to expected argument type 'NSDate' 啥意思?最新的xcode7,语言变化太快跟着教程都有错误

正在回答

2 回答

在playground中尝试了一下如下代码

import UIKit

var a:AnyObject

var b:NSdate

func datefromString(datestr:String)->NSDate? //从String类型中提取出日期

{

    let dateFormatter = NSDateFormatter()

    dateFormatter.dateFormat = "yyyy-mm-dd"

    let indate = dateFormatter.dateFromString(datestr)

    return indate

}

 datefromString("1997-11-11")

a = datefromString("1997-11-11")!//成功赋值

b = datefromString("1997-11-11")! // 报错

可以看到还是无法赋值,只能算是一种临时方案了

猜想:

实际提取出的日期格式是这样的 "Jan 11, 1997, 12:11 AM",与 “yyyy-mm-dd”格式不一致,会是这个原因吗?

查询中~



0 回复 有任何疑惑可以回复我~

我在之后的课程里也遇到这个问题,Cannot convert value of type 'NSData' to expected argument type 'NSDate' ,大意是无法把NSdate转化成NSdate,目前正在找原因,你那部分代码可以用下面这个代替:

    func getage()->String?{     //get age

        let gregorian = NSCalendar(calendarIdentifier:NSCalendarIdentifierGregorian)    

        let now = NSDate()     //获得当前日期

        let nowyear = gregorian?.component(NSCalendarUnit.Year, fromDate: now) //从当前日期中提取年份

        let selectedyear = gregorian?.component(NSCalendarUnit.Year, fromDate: birthday.date)//从选择的日期中提取年份

        let age = String(nowyear!-selectedyear!) ?? nil

        return age

    }

这个函数会直接返回年龄~


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
使用Swift开发iOS8 App实战
  • 参与学习       62613    人
  • 解答问题       541    个

通过苹果最新Swift语言开发iOSApp,从零开始学习iOS的开发

进入课程

相亲神器calendar的操作报告错误

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信