2016-10-02 6 views
1

Ich versuche, ein CGRect in eine objektive c Funktion zu übergeben, wie folgt:Bad Receiver Type 'CGRect'

+(UIImageView *) detectEdges: (UIImageView *)_sourceImageView withCropRect:(CGRect)_cropRect 
{ 

    [_cropRect topLeftCornerToCGPoint:[(NSValue *)[sortedPoints objectForKey:@"0"] CGPointValue]]; 
    [_cropRect topRightCornerToCGPoint:[(NSValue *)[sortedPoints objectForKey:@"1"] CGPointValue]]; 

    //code continues 

Jedesmal, wenn ich zu _cropRect verweise ich bekommen einen Compiler-Fehler: "Bad Receiver Type 'CGRect'". Warum passiert das und was sollte ich tun, um es zu korrigieren?

+2

'CGRect' ist eine Struktur, keine Klasse. Es * kennt * keine 'topLeftCornerToCGPoint:' Methode. Wenn Sie Code/Repos von Drittanbietern verwenden, fügen Sie bitte eine Referenz hinzu. –

+0

Ich versuche, _cropRect in einer anderen Klasse zu übergeben. Ich kann die UIImageView übergeben, aber nicht die CGRect. Ich weiß nicht, warum ich das CGRect nicht in die Funktion einbauen kann. – Tom

+2

Sie * können * in die Funktion übergeben, aber Sie können keine Nachricht senden ('topLeftCornerToCGPoint'). Die obere linke Ecke kann erreicht werden, indem die CGRect-Struktur (kein Objekt) mit '_cropRect.origin' referenziert wird. – danh

Antwort

0

Wie bereits erwähnt, können die Methoden topLeftCornerToCGPoint: und topRightCornerToCGPoint: nur unter MMCropView Instanzen verwendet werden. Leider kenne ich den Rahmen nicht oder was Sie erreichen möchten; aber Sie sollten diese nicht auf CGRect anrufen.

Verwandte Themen