Fixed +[NSValueTransformer valueTransformerForName:] to automatically register

any available NSValueTransformer subclass that matches  the given name and is 
not yet registered. This behavior is described in the Cocoa API documentation.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@37565 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Quentin Mathe 2014-01-09 10:21:55 +00:00
parent 777f693855
commit f89c8939a4
3 changed files with 25 additions and 0 deletions

View file

@ -102,6 +102,20 @@ static GSLazyLock *lock = nil;
[lock lock];
transformer = [registry objectForKey: name];
IF_NO_GC([transformer retain];)
if (transformer == nil)
{
Class transformerClass = NSClassFromString(name);
if (transformerClass != Nil
&& [transformerClass isSubclassOfClass: [NSValueTransformer class]])
{
transformer = [[transformerClass alloc] init];
[registry setObject: transformer forKey: name];
}
}
[lock unlock];
return AUTORELEASE(transformer);
}