[Video Summary] Ch. 4.3 ForEach in SwiftUI (Dungeon Dice app)
Mô tả nhanh
Video này hướng dẫn cách sử dụng ForEach
trong SwiftUI để giảm thiểu code lặp đi lặp lại khi tạo các view dựa trên enum và mảng.
Video
Mô tả chi tiết
Video này hướng dẫn cách sử dụng ForEach
trong SwiftUI để giảm thiểu code lặp đi lặp lại khi tạo các view dựa trên enum và mảng. Video bắt đầu bằng việc giới thiệu về lỗi "Don't Repeat Yourself" (DRY) trong lập trình, sau đó hướng dẫn từng bước để sử dụng ForEach
:
- Tạo mảng String và Text View:
- Tạo một mảng String lưu tên các nhân vật.
- Sử dụng một vòng lặp
for
thông thường để tạo ra cácText View
. - Xcode sẽ báo lỗi vì không thể sử dụng vòng lặp
for
trực tiếp trongViewBuilder
.
- Sử dụng
ForEach
:- Thay thế vòng lặp
for
bằngForEach
. ForEach
cần 2 tham số:data
(mảng) vàcontent
(closure trả về View).ForEach
yêu cầudata
conformIdentifiable
để xác định cácView
. Nhắc đến cú pháp\.self
- Thay thế vòng lặp
- Thử nghiệm với dữ liệu trùng lặp:
- Thêm các phần tử trùng lặp vào mảng và thấy lỗi cảnh báo khi dữ liệu không unique.
- Sử dụng
ForEach
với Enum:- Để sử dụng
ForEach
với enum, enum cần conformCaseIterable
. - Sử dụng
dice.allCases
để lặp qua các case của enum. - Truy xuất
rawValue
của mỗi case để đưa vào Text View.
- Để sử dụng
- Xây dựng các Button bằng
ForEach
- Thay thế các
Text View
bằng cácButton
. - Thay thế các giá trị hardcode bằng giá trị tương ứng của enum.
- Thêm các modifier để các button nhìn đẹp hơn.
- Thay thế các
Video kết luận bằng việc so sánh số lượng code trước và sau khi sử dụng ForEach
, giảm từ 34 dòng xuống còn 8 dòng code.
Chúc bạn học tập hiệu quả!