使用未解析的标识符 - UITableView
Use of unresolved identifier - UITableView
我正在尝试 uitableview
包含星期几。首先应该始终是当前日期。但是我对导入标识符有一个简单的问题。这是我的代码:
class SecondViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var tableView: UITableView!
//Define Days Of The Week
let calendar = NSCalendar.currentCalendar()
let today = NSDate()
let AddOneDay = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 1,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddTwoDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 2,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddThreeDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 3,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddFourDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 4,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddFiveDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 5,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddSixDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 6,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
func convertDaysFormater(date: String) -> String {
let daysFormatter = NSDateFormatter()
daysFormatter.dateFormat = "EEEE"
daysFormatter.locale = NSLocale(localeIdentifier: "pl_PL")
let convertedOneDay = daysFormatter.stringFromDate(AddOneDay!)
let convertedTwoDays = daysFormatter.stringFromDate(AddTwoDays!)
let convertedThreeDays = daysFormatter.stringFromDate(AddThreeDays!)
let convertedFourDays = daysFormatter.stringFromDate(AddFourDays!)
let convertedFiveDays = daysFormatter.stringFromDate(AddFiveDays!)
let convertedSixDays = daysFormatter.stringFromDate(AddSixDays!)
return convertedOneDay
return convertedTwoDays
return convertedThreeDays
return convertedFourDays
return convertedFiveDays
return convertedSixDays
}
// Define Array
let textCellIdentifier = "TextCell"
let swiftBlogs = [convertedOneDay, convertedTwoDays, etc...]
无法将 convertedOneDay - 'Use of unresolved identifier' 错误。感谢您的帮助 ;)
你有很多类似的代码例如:
let AddOneDay = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 1,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddTwoDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 2,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddThreeDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 3,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddFourDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 4,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddFiveDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 5,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddSixDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 6,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
对于其中的每一个,只有变量名称和值会发生变化,因此将其描述为 NSDate
数组会更有效。例如:
let futureDates:[NSDate] = {
var futureDates = [NSDate]()
for index in 1 ... 6 // Range starting tomorrow and going up to 6 days
{
let futureDate = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: index,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
futureDates.append(futureDate!)
}
return futureDates
}()
这样一来,更改您想查看的日期就变得微不足道了。您只需更改要迭代的范围。
您 运行 遇到的问题是您正试图在其范围之外使用 convertedOneDay
。因为你在 convertDaysFormater
中声明了 convertedOneDay
它只能在那个函数中使用。
您的 convertDaysFormater
功能还可以改进。现在,您没有使用该参数,正如 Phillip Mills 指出的那样,一旦您调用 return
就会退出该函数,因此不会执行后续的 returns
。我建议您更改函数以接受一个日期和 return 一个字符串,如下所示:
func convertDaysFormatter(date:NSDate) -> String {
let daysFormatter = NSDateFormatter()
daysFormatter.dateFormat = "EEEE"
daysFormatter.locale = NSLocale(localeIdentifier: "pl_PL")
return daysFormatter.stringFromDate(date)
}
我们现在可以使用我们的 futureDates
和我们的 convertDaysFormatter
函数来生成您想要的 swiftBlogs
数组。通过这样说:
let swiftBlogs:[String] = {
var swiftBlogs = [String]()
for date in futureDates
{
swiftBlogs.append(convertDaysFormatter(date))
}
return swiftBlogs
}()
我们只是从 futureDates
中获取每个日期,并使用 convertDaysFormatter
到 return 我们附加到数组的适当字符串。在 swift 中,您可以通过简单地说:
来更简洁地表达这一点
let swiftBlogs = futureDates.map{convertDaysFormatter([=14=])}
当我 运行 这段代码时,我得到 swiftBlogs
等于:
["niedziela", "poniedziałek", "wtorek", "środa", "czwartek", "piątek"]
我正在尝试 uitableview
包含星期几。首先应该始终是当前日期。但是我对导入标识符有一个简单的问题。这是我的代码:
class SecondViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var tableView: UITableView!
//Define Days Of The Week
let calendar = NSCalendar.currentCalendar()
let today = NSDate()
let AddOneDay = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 1,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddTwoDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 2,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddThreeDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 3,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddFourDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 4,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddFiveDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 5,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddSixDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 6,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
func convertDaysFormater(date: String) -> String {
let daysFormatter = NSDateFormatter()
daysFormatter.dateFormat = "EEEE"
daysFormatter.locale = NSLocale(localeIdentifier: "pl_PL")
let convertedOneDay = daysFormatter.stringFromDate(AddOneDay!)
let convertedTwoDays = daysFormatter.stringFromDate(AddTwoDays!)
let convertedThreeDays = daysFormatter.stringFromDate(AddThreeDays!)
let convertedFourDays = daysFormatter.stringFromDate(AddFourDays!)
let convertedFiveDays = daysFormatter.stringFromDate(AddFiveDays!)
let convertedSixDays = daysFormatter.stringFromDate(AddSixDays!)
return convertedOneDay
return convertedTwoDays
return convertedThreeDays
return convertedFourDays
return convertedFiveDays
return convertedSixDays
}
// Define Array
let textCellIdentifier = "TextCell"
let swiftBlogs = [convertedOneDay, convertedTwoDays, etc...]
无法将 convertedOneDay - 'Use of unresolved identifier' 错误。感谢您的帮助 ;)
你有很多类似的代码例如:
let AddOneDay = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 1,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddTwoDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 2,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddThreeDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 3,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddFourDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 4,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddFiveDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 5,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
let AddSixDays = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: 6,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
对于其中的每一个,只有变量名称和值会发生变化,因此将其描述为 NSDate
数组会更有效。例如:
let futureDates:[NSDate] = {
var futureDates = [NSDate]()
for index in 1 ... 6 // Range starting tomorrow and going up to 6 days
{
let futureDate = NSCalendar.currentCalendar().dateByAddingUnit(
.Day,
value: index,
toDate: NSDate(),
options: NSCalendarOptions(rawValue: 0))
futureDates.append(futureDate!)
}
return futureDates
}()
这样一来,更改您想查看的日期就变得微不足道了。您只需更改要迭代的范围。
您 运行 遇到的问题是您正试图在其范围之外使用 convertedOneDay
。因为你在 convertDaysFormater
中声明了 convertedOneDay
它只能在那个函数中使用。
您的 convertDaysFormater
功能还可以改进。现在,您没有使用该参数,正如 Phillip Mills 指出的那样,一旦您调用 return
就会退出该函数,因此不会执行后续的 returns
。我建议您更改函数以接受一个日期和 return 一个字符串,如下所示:
func convertDaysFormatter(date:NSDate) -> String {
let daysFormatter = NSDateFormatter()
daysFormatter.dateFormat = "EEEE"
daysFormatter.locale = NSLocale(localeIdentifier: "pl_PL")
return daysFormatter.stringFromDate(date)
}
我们现在可以使用我们的 futureDates
和我们的 convertDaysFormatter
函数来生成您想要的 swiftBlogs
数组。通过这样说:
let swiftBlogs:[String] = {
var swiftBlogs = [String]()
for date in futureDates
{
swiftBlogs.append(convertDaysFormatter(date))
}
return swiftBlogs
}()
我们只是从 futureDates
中获取每个日期,并使用 convertDaysFormatter
到 return 我们附加到数组的适当字符串。在 swift 中,您可以通过简单地说:
let swiftBlogs = futureDates.map{convertDaysFormatter([=14=])}
当我 运行 这段代码时,我得到 swiftBlogs
等于:
["niedziela", "poniedziałek", "wtorek", "środa", "czwartek", "piątek"]