You could declare the property in a private header or redefine it as already suggested. Also the following approaches may sometimes be applicable:
Use the ObjectiveC runtime: id objc_msgSend(id self, SEL op, ...). Care should be taken when using primitive types or structures.
Use key-value coding: [someObject setValue:aValue forKey:@"propertyName"];
Use performSelector: [someObject performSelector:@selector(setFoobar) . . . ], note that this will fire a warning under ARC
Use an NSInvocation
Key-value coding is quite common. The others would be more applicable in libraries and frameworks, though you could certainly use them if called for.