Да, проверьте getImageData (). Вот пример повреждающейся капчи с JavaScript с помощью холста:
Категории расширяют исходный класс, но не подклассифицируют его, поэтому вызов super
не находит метод.
То, что вы хотите, называется Method Swizzling . Но имейте в виду, что ваш код может что-то сломать. Есть статья о Theocacao, написанная Скотом Стивенсоном о методе Swizzling в старой среде выполнения Objective-C, Какао с любовью, Мэтт Галлахер имеет статью о методе Swizzling в новой среде выполнения Objective-C 2.0 и его простой замене.
В качестве альтернативы, вы можете создать подкласс класса, а затем использовать подкласс или используйте + (void) PoseAsClass: (Class) aClass
для замены суперкласса. Apple пишет:
Метод, определенный классом позирования. можно, отправив сообщение на
super
, включить метод суперкласса переопределяет.
Имейте в виду, что Apple устарела PoseAsClass:
в Mac OS X 10.5.
Если вы будете кодировать этот класс, просто переименуйте селектор на то, что может использовать ваш код, и вызовите исходный селектор на self
:
@implementation SampleClass (filePathResolver)
-(NSString*) myFullPathFromRelativePath:(NSString*) relPath
{
NSString *result = [self fullPathFromRelativePath: relPath];
... do some stuff with the old result
return result;
}
Если хотите чтобы переопределить реализацию этого селектора по умолчанию для этого класса, вам необходимо использовать метод swizzling .