Was ist der Unterschied zwischen dem Schließen des Bezierpfads mit der Funktion closePath und dem manuellen Schließen?

Ich versuche mit @ ein Rechteck zu machUIBezierPath. Ich habe zwei verschiedene Arten gewählt, um es zu zeichnen. Außerdem habe ich die Strichbreite auf 25 px erhöht.

Erste Methode: closePath @ verwend

UIBezierPath *bpath = [UIBezierPath bezierPath];

[bpath moveToPoint:CGPointMake(x, y)];
[bpath addLineToPoint:CGPointMake(x + w, y)];
[bpath addLineToPoint:CGPointMake(x + w, y + h)];
[bpath addLineToPoint:CGPointMake(x, y + h)];
[bpath closePath];

Ausgabe

Zweite Methode: Pfad manuell schließen

UIBezierPath *bpath = [UIBezierPath bezierPath];

[bpath moveToPoint:CGPointMake(x, y)];
[bpath addLineToPoint:CGPointMake(x + w, y)];
[bpath addLineToPoint:CGPointMake(x + w, y + h)];
[bpath addLineToPoint:CGPointMake(x, y + h)];
[bpath addLineToPoint:CGPointMake(x, y)];

Ausgabe

In der Dokumentation zuclosePath es sagtThis method closes the current subpath by creating a line segment between the first and last points in the subpath. This method subsequently updates the current point to the end of the newly created line segment, which is also the first point in the now closed subpath.

Und in der zweiten Methode erstelle ich das Liniensegment zwischen dem ersten und dem letzten Punkt. Also, warum wird in der zweiten Methode das Rechteck nicht komplett gestrichen?

Hinweis: Der Unterschied zwischen diesen Methoden ist nur sichtbar, wenn die Strichbreite erheblich vergrößert wird.