I’m trying to pass a CGRect:
SEL frameSel = NSSelectorFromString(@"setFrame:");
CGRect rect = CGRectMake(10, 10, 200, 100);
[object performSelector:frameSel withObject:rect ];
But this does not compile
I also tried:
SEL frameSel = NSSelectorFromString(@"setFrame:");
CGRect rect = CGRectMake(10, 10, 200, 100);
NSValue * value = [NSValue valueWithCGRect:rect];
[object performSelector:frameSel withObject:value ];
Actually, this does compile but when I debug, the frame is not setted correctly:
po object
<UILabel: 0x39220f0; frame = (0 0; 200 100); text = 'reflectionLabel'; clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x3922240>>
But it should be frame = (10 10; 200 100)
How can I solve this problem?
Thank you in advance!
Correct, because
rectis a structure, not a pointer to an object.Well, it’s not garbage, so it would seem that it worked, even though the origin somehow remained zero. You may want to ask a separate question about that.
Anyway, why are you using
performSelector:withObject:? You’re not addressing it to a specific thread and you’re not putting it on a delay; why not simply sayobject.frame = rect?