Ungerade Eigenschaftsdeklarationssyntax, die eckige Klammern enthält

8

Ich habe gerade FourInARow aus dem WWDC-Beispielcode von 2015 ( Ссылка ) heruntergeladen und eine seltsame Eigenschaftsdeklaration bemerkt in Datei AAPLViewController.m

%Vor%

Was heißt das?

    
imas145 09.06.2015, 10:53
quelle

2 Antworten

12

Es ist eine neue Ergänzung zu Objective-C, genannt Leichte Generika . Es wurde in iOS9 / OS X 10.11 eingeführt, um die Interoperabilität zwischen Swift und Objective-C zu verbessern. Wie die Dokumentation sagt:

  

Objective-C-Deklarationen von NSArray-, NSSet- und NSDictionary-Typen   Leichte generische Parametrisierung wird von Swift mit importiert   Informationen über die Art ihrer Inhalte erhalten.

     

Betrachten Sie zum Beispiel die folgenden Objective-C-Eigenschaftsdeklarationen:

%Vor%
  

Hier ist, wie Swift sie importiert:

%Vor%     
Michał Ciuba 09.06.2015, 10:59
quelle
2

Zusätzlich zu Michał Ciubas Antwort:

Trotz der Dokumentation ( Lightweight Generics ) scheint es nicht explizit zu erwähnen, es ist nicht nur für Swift: diese Syntax beeinflusst Objective-C. Wenn Sie beispielsweise ein veränderbares Array von CAShapeLayer* deklarieren, führt das Hinzufügen oder Zugreifen auf inkompatible Elemente zu Compilerwarnungen. ZB

%Vor%     
mojuba 31.01.2016 00:34
quelle

Tags und Links