Jeśli potrzebuję niestandardowego typu w Swift, że mogę typedef
, jak to zrobić? (Coś jak typedef składni zamknięcie)Jak zadeklarować typedef w Swift
Odpowiedz
Słowo kluczowe typealias
jest używany w miejscu o typedef
typealias CustomType = String
var customString:CustomType = "Test String"
jak mogę zrobić nowy typ tego zamknięcia pozwolić completionBlock: (NSString, NSError!) -> Void = {strg, błąd w myString = "Haider" println ("Mój tekst: \ (myString)") } –
typealias newClosure = ((strg1: NSString, num1: NSNumber) -> Void)? –
@WaqasHaiderSheikh Możesz zrobić, jak 'typalias closureType = (NSString, NSError!) -> Void'. I użyj go jako 'let completionBlock: closureType = {strg, error // coś zrobię}' –
dodany do odpowiedzi powyżej:
„typealias” to słowo kluczowe używane jest szybki, który robi podobna funkcja jak 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")
}
Aby utworzyć typedef z wejściem param składnia jest taka, jak pokazano poniżej:
/*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 */
firmy Apple będący Jabłko (~) ~ różni ich typedef nazywa 'typealias'. Czy znasz już język programowania Swift firmy Apple *? – Kreiri
Dokument ten można znaleźć również tutaj: https://developer.apple.com/library/prerelease/ios/navigation/ (zamiast zawierać bezpośredni link, który może przerwać wyszukiwanie "Swift Programming Language" na stronie) – petert
"Typalias" Kireiriego Swifta nie nazywa się "typedef", ponieważ jego zdolność jest znacznie mniejsza niż w przypadku "typedef", a znacznie bardziej koncentruje się na przypadkach potrzebnych w nowoczesnym programowaniu. Jest to zgodne z ogólną zasadą projektu Swift, polegającą na tym, że większy leksykon koncentruje się na specyficznych potrzebach, w przeciwieństwie do małego leksykonu C, który ma być łączony w ... _przekoncze_ ... sposoby. Gdyby Apple zdecydowało się nazywać to "typedef", ludzie oczekiwaliby, że będzie działał jak "typedef" C. Jest to kwestia projektowania, z którą często korzysta Microsoft - będą używać nazw ustalonych, ale ich implementacja będzie działać inaczej. –