我正在为NSDate编写一个扩展,它提供了一些可用的初始化程序.这里的最终目标是从API获取日期时间字符串并将其解析为NSDate,例如
let createdAt = NSDate(apiDateTimeString: "2016-03-29T18:33:49+06:00")
let createdAt = NSDate(apiDateTimeString: "2016-03-29T18:33:49.730+06:00")
Run Code Online (Sandbox Code Playgroud)
日期时间字符串可以采用以下两种格式之一:
yyyy-MM-dd'T'HH:mm:ssZZZZZyyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ这是扩展的样子:
import Foundation
public extension NSDate {
// MARK: Custom Initializers
public convenience init(date: NSDate) {
self.init(timeInterval: 0.0, sinceDate: date)
}
public convenience init?(dateString: String, formatString: String) {
let formatter = NSDateFormatter()
formatter.dateFormat = formatString
formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
if let date = formatter.dateFromString(dateString) {
self.init(date: date)
} else {
return nil
}
}
public convenience init?(apiDateTimeString: String?) {
guard let dateString = apiDateTimeString else { …Run Code Online (Sandbox Code Playgroud) 我正在尝试遍历String获取字符以及它们的索引.听起来很简单..但我找不到正确的语法.
这是我在尝试的:
let str = "testString"
for (index, char) in str.characters {
print(index)
print(char)
}
Run Code Online (Sandbox Code Playgroud)
要么
for (index, char) in enumerate(str.characters) {...}
Run Code Online (Sandbox Code Playgroud) 以下问答涵盖了在 Swift 中生成斐波那契数的一些方法,但它已经过时了(Swift 1.2?):
问题:我们如何使用现代 Swift (Swift >= 3) 巧妙地生成斐波那契数列?最好是避免显式递归的方法。
考虑以下示例:
#include<iostream>
using namespace std;
class Point
{
private:
int x, y;
public:
Point(int x1, int y1) { x = x1; y = y1; }
// Copy constructor
Point(const Point& p2) { x = p2.x; y = p2.y; }
int getX() { return x; }
int getY() { return y; }
};
int main()
{
Point p1(10, 15);
Point p2 = p1;
cout << "p1.x = " << p1.getX() << ", p1.y = " << p1.getY();
cout << "\np2.x = …Run Code Online (Sandbox Code Playgroud)