Übersetze NSRangePointer von Objective-C nach Swift

8

Ich bekomme einen Fehler, wenn ich einen Objective-C-Code nach Swift übersetze.

Ich verwende - attribute:atIndex:effectiveRange: von NSAttributedString und ein Fehler bezüglich des Parameters effectiveRange , der ein NSRangePointer ist.

Ziel-C:

%Vor%

Schnell:

%Vor%

Ich habe einen Fehler in der Nähe von &range .

    
daniyal yousuf 13.09.2014, 16:35
quelle

2 Antworten

11

Sie müssen den Bereich auspacken.

Außerdem müssen Sie den Bereich initialisieren. Andernfalls wird dies Ihr Programm zum Absturz bringen.

%Vor%

Oder, wenn Sie Ihren Bereich nicht auspacken möchten (es könnte nil sein), schreiben Sie Ihre Funktion wie folgt um:

%Vor%

Aber Sie müssen Ihren Bereich vielleicht gar nicht erst optional gemacht haben (denken Sie, muss range jemals null sein? Wenn nicht, dann muss es nicht optional sein.), in diesem Fall , nur den Bereich wie folgt zu initialisieren funktioniert:

%Vor%     
michaelsnowden 13.09.2014 16:56
quelle
1
%Vor%     
zHeng 28.03.2016 17:48
quelle

Tags und Links