Tôi đã sử dụng dateByAddingComponents:toDate:options:
và dateByAddingUnit:value:toDate:options:
và sử dụng tùy chọn ràng buộc để có được ngày ra khỏi nó. Như thế này:Khi nào dateByAddingComponents: toDate: tùy chọn trả về nil?
guard let startOfNextMonth = calendar.dateByAddingComponents(oneMonthComponent, toDate: startOfThisMonth, options: []) else {
return nil
}
đâu oneMonthComponent
chỉ là một NSDateComponent với giá trị tháng thiết lập để 1.
Khi tôi đọc về nó, trong tài liệu cả hai đều nói điều gì đó như:
Returns nil nếu ngày nằm ngoài phạm vi được xác định của người nhận hoặc nếu không thể thực hiện tính toán.
Và tôi đã tự hỏi, khi nào chính xác là nguyên nhân gây ra. Nếu tôi chỉ thêm một tháng vào một ngày, có cách nào có thể là không? Đây có phải là vì một số khác biệt trong các hệ thống lịch khác, khi thêm một số đơn vị không có ý nghĩa?
Tôi đã tìm kiếm xung quanh và không thể tìm thấy một trường hợp mà nó sẽ trả lại không.
Có điều gì có thể làm cho mã ở trên không phải là không? Ví dụ khi thêm thành phần có thể là gì?
Lưu ý rằng trong Swift> = 3, tên phương thức là 'date (byAdding: to: options:)'. –