mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-30 16:30:41 +00:00
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:
parent
777f693855
commit
f89c8939a4
3 changed files with 25 additions and 0 deletions
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue