Nếu tôi yêu cầu loại tùy chỉnh trong Swift, tôi có thể typedef
, làm cách nào để thực hiện? (Một cái gì đó giống như một typedef cú pháp đóng cửa)Làm cách nào để tôi khai báo typedef trong Swift
Trả lời
Từ khóa typealias
được sử dụng ở vị trí của typedef
typealias CustomType = String
var customString:CustomType = "Test String"
làm thế nào tôi có thể thực hiện một loại mới của đóng cửa này cho phép hoàn thànhBlock: (NSString, NSError!) -> Void = {strg, lỗi trong myString = "Haider" println ("Văn bản của tôi: \ (myString)") } –
typealias newClosure = ((strg1: NSString, num1: NSNumber) -> Void)? –
@WaqasHaiderSheikh Bạn có thể làm như 'typealias closureType = (NSString, NSError!) -> Void'. Và sử dụng nó như 'let completionBlock: closureType = {strg, error in // do something}' –
thêm vào câu trả lời ở trên:
"typealias" là từ khóa được dùng là nhanh chóng mà không chức năng tương tự như typedef.
/*defines a block that has
no input param and with
void return and the type is given
the name voidInputVoidReturnBlock*/
typealias voidInputVoidReturnBlock =() -> Void
var blockVariable :voidInputVoidReturnBlock = {
println(" this is a block that has no input param and with void return")
}
Để tạo một typedef với đầu vào param cú pháp được như hình dưới đây:
/*defines a block that has
input params NSString, NSError!
and with void return and the type
is given the name completionBlockType*/
typealias completionBlockType = (NSString, NSError!) ->Void
var test:completionBlockType = {(string:NSString, error:NSError!) ->Void in
println("\(string)")
}
test("helloooooooo test",nil);
/*OUTPUTS "helloooooooo test" IN CONSOLE */
- 1. Cách hiểu typedef trong khai báo này
- 2. Làm thế nào để khai báo extern typedef struct?
- 3. khai báo typedef loại
- 4. typedef enum trong swift
- 5. C++ - Làm thế nào để sử dụng template typedef workaround trong khai báo chức năng?
- 6. khai báo tham chiếu chuyển tiếp để chặn typedef?
- 7. Sử dụng typedef cho mảng để khai báo kiểu mới
- 8. Khai báo URL trong Swift 3
- 9. Sử dụng obj-c typedef trong Swift
- 10. Tại sao tôi nên có một liệt kê được khai báo với một typedef trong C++?
- 11. Khai báo đúng biến trong Swift như thế nào?
- 12. Khai báo cấu trúc: typedef struct name name;
- 13. Sử dụng C++ với Objective-C, Làm cách nào để khắc phục "Khai báo xung đột" typedef int BOOL '"?
- 14. Tại sao một khai báo typedef không được gọi là định nghĩa typedef?
- 15. Làm thế nào để khai báo biến 'được bảo vệ' trong swift
- 16. Làm thế nào để khai báo các biến dễ bay hơi trong Swift
- 17. Làm cách nào để tôi nhận được LinqToXSD để khai báo đúng các khai báo tiền tố không gian tên?
- 18. typedef có hiệu ứng phụ khai báo chuyển tiếp?
- 19. Swift: Khai báo các tuple rỗng
- 20. Làm cách nào để khai báo nhiều người duy trì trong Dockerfile của tôi?
- 21. Làm thế nào để khai báo enums đệ quy với Swift 2.0
- 22. Làm thế nào để bạn đọc các khai báo C?
- 23. Làm cách nào để khai báo dài trong Objective-C? NSInteger có thích hợp không?
- 24. Swift - làm thế nào để khai báo biến/functon của/với enums loại khác nhau?
- 25. Làm cách nào để khai báo hằng số Int64?
- 26. Làm cách nào để khai báo loại tùy chọn Android?
- 27. Cách tốt nhất để khai báo danh sách các giá trị vô hướng trong Swift
- 28. Làm cách nào để khai báo thuộc tính mảng?
- 29. Swift: Cách khai báo mảng 2d (lưới hoặc ma trận) trong Swift để cho phép chèn ngẫu nhiên
- 30. R - làm cách nào để khai báo vectơ của Ngày?
của Apple là Apple (~ khác nhau ~), typedef của họ được gọi là 'typealias'. Bạn đã đọc ngôn ngữ lập trình Swift * của Apple chưa? – Kreiri
Bạn cũng có thể tìm thấy tài liệu này trực tuyến tại đây: https://developer.apple.com/library/prerelease/ios/navigation/ (thay vì bao gồm một liên kết trực tiếp có thể phá vỡ chỉ tìm kiếm "Ngôn ngữ lập trình Swift" trên trang) – petert
'typealias' của @Kreiri Swift không được gọi là' typedef' vì khả năng của nó nhỏ hơn nhiều so với 'typedef', và tập trung nhiều hơn vào các ca sử dụng cần thiết trong lập trình hiện đại. Điều này theo nguyên lý thiết kế chung của Swift để có một từ vựng lớn hơn tập trung vào các nhu cầu cụ thể, không giống như từ vựng nhỏ của C có nghĩa là được kết hợp trong… _creative_… cách. Nếu Apple đã chọn gọi nó là 'typedef', mọi người sẽ mong đợi nó hoạt động giống như 'typedef' của C. Đó là vấn đề thiết kế mà Microsoft gặp phải thường xuyên— họ sẽ sử dụng các tên đã được thiết lập nhưng có cách triển khai khác nhau. –