Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 将Int转换为字符串_Swift_String_Int - Fatal编程技术网

Swift 将Int转换为字符串

Swift 将Int转换为字符串,swift,string,int,Swift,String,Int,我对swift(以及编程)还很陌生。我正在尝试将Int转换为字符串。我尝试过使用switch语句,但每次使用它们时,它都不会更改字符串(即打印数字4)。我尝试执行的示例如下: class Birthday(_ month: Int, _ day:Int, _ year:Int) -> String{ //Here is where I'd like to turn my month into April Return (month) } let example = Bi

我对swift(以及编程)还很陌生。我正在尝试将Int转换为字符串。我尝试过使用switch语句,但每次使用它们时,它都不会更改字符串(即打印数字4)。我尝试执行的示例如下:

class Birthday(_ month: Int, _ day:Int, _ year:Int) -> String{
    //Here is where I'd like to turn my month into April

    Return (month)
}

let example = Birthday()

example(4,15,1988)

您可以使用
字典
,将对象映射到彼此。例如,一个月字典可能看起来像:

let months: [Int:String] = [1:"January", 2:"February",...]
return months[4] // returns "April"

您可以使用
字典
,将对象映射到彼此。例如,一个月字典可能看起来像:

let months: [Int:String] = [1:"January", 2:"February",...]
return months[4] // returns "April"

如果您确实只想从月号中获取月名,可以执行以下操作:

let formatter = DateFormatter()
let monthName = formatter.monthSymbols[month - 1] // Assuming 1 means January
但是,由于您要传入一个月、一天和一年,您可能想要创建一个
日期
,然后您想要将该
日期
格式化为一个`字符串

使用
日历
日期组件
创建一个
日期

let date = Calendar.current.date(from: DateComponents(year: year, month: month, day: day))
然后使用
日期格式化程序将
日期
格式化为
字符串

let formatter = DateFormatter()
formatter.dateStyle = .long // choose a desired style
formatter.timeStyle = .none
let string = formatter.string(from: date)

如果您确实只想从月号中获取月名,可以执行以下操作:

let formatter = DateFormatter()
let monthName = formatter.monthSymbols[month - 1] // Assuming 1 means January
但是,由于您要传入一个月、一天和一年,您可能想要创建一个
日期
,然后您想要将该
日期
格式化为一个`字符串

使用
日历
日期组件
创建一个
日期

let date = Calendar.current.date(from: DateComponents(year: year, month: month, day: day))
然后使用
日期格式化程序将
日期
格式化为
字符串

let formatter = DateFormatter()
formatter.dateStyle = .long // choose a desired style
formatter.timeStyle = .none
let string = formatter.string(from: date)

简单的解决方案是使用一个整数并返回月份字符串的方法

func numberToMonth(number: Int) -> String {

    guard number > 0, number < 13 else { return "" }
    return DateFormatter().monthSymbols[number-1]
}
func numberToMonth(number:Int)->String{
保护编号>0,编号<13否则{return'}
return DateFormatter().monthSymbols[number-1]
}

一个简单的解决方案是采用整数并返回月份字符串的方法

func numberToMonth(number: Int) -> String {

    guard number > 0, number < 13 else { return "" }
    return DateFormatter().monthSymbols[number-1]
}
func numberToMonth(number:Int)->String{
保护编号>0,编号<13否则{return'}
return DateFormatter().monthSymbols[number-1]
}

返回[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”][month-1]
@vacawama为什么不使用
日期格式化程序monthSymbols
?@rmaddy,这确实是个好主意。了解我的评论如何工作对初学者也很有用。
return[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”][month-1]
@vacawama为什么不使用
DateFormatter-monthSymbols
?@rmaddy,这确实是个好主意。了解我的评论是如何工作的对初学者也很有用。不要这样做
DateFormatter
已经提供了一个月名称的本地化数组。@rmaddy当然可以,但问题是他们不理解将输入值转换为其他值的概念
DateFormatter
适用于特定的示例,但是如果他们遇到这样的情况,即这不是一个预制数组,他们就会知道可以做什么。顺便问一下,为什么要使用字典?为什么不是一个简单的数组?不要这样做
DateFormatter
已经提供了一个月名称的本地化数组。@rmaddy当然可以,但问题是他们不理解将输入值转换为其他值的概念
DateFormatter
适用于特定的示例,但是如果他们遇到这样的情况,即这不是一个预制数组,他们就会知道可以做什么。顺便问一下,为什么要使用字典?为什么不是一个简单的数组?不要这样做
DateFormatter
已经提供了所有月份的本地化名称。嗯,由于@rmaddy的回答,这现在大部分是多余的。此外,如果索引超出范围,如何返回可选而不是崩溃?不要这样做
DateFormatter
已经提供了所有月份的本地化名称。嗯,由于@rmaddy的回答,这现在大部分是多余的。此外,如果索引超出范围,这是如何返回可选的,而不是崩溃的?注意,<代码> DateFormatter < /C>是由基础框架提供的,因此,您将需要<代码>导入基础< /代码>如果您还没有一个<代码>导入UIKIT < /代码>或<代码>导入COCOA。请注意,<代码> DateFormatter < /代码>是由基础框架提供的,因此您需要“代码>导入基础< /COD>如果您还没有一个<代码>导入UIKIT < /代码>或<代码>导入COCOA。