mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-25 18:30:56 +00:00
Fix object ID parsing in XIB loading due to Apple moving to string ID represenatation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/branches/gnustep_testplant_branch@38224 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
9065c08f32
commit
34bcb2c7c4
2 changed files with 10 additions and 21 deletions
|
@ -121,14 +121,14 @@
|
|||
|
||||
@interface IBObjectRecord: NSObject
|
||||
{
|
||||
int objectID;
|
||||
id objectID;
|
||||
id object;
|
||||
id children;
|
||||
id parent;
|
||||
}
|
||||
- (id) object;
|
||||
- (id) parent;
|
||||
- (NSInteger) objectID;
|
||||
- (id) objectID;
|
||||
@end
|
||||
|
||||
@interface IBMutableOrderedSet: NSObject
|
||||
|
@ -136,7 +136,7 @@
|
|||
NSArray *orderedObjects;
|
||||
}
|
||||
- (NSArray *)orderedObjects;
|
||||
- (id) objectWithObjectID: (NSInteger)objID;
|
||||
- (id) objectWithObjectID: (id)objID;
|
||||
@end
|
||||
|
||||
@interface IBObjectContainer: NSObject <NSCoding>
|
||||
|
|
|
@ -564,23 +564,12 @@
|
|||
if ([coder containsValueForKey: @"objectID"])
|
||||
{
|
||||
// PRE-4.6 XIBs....
|
||||
objectID = [coder decodeIntForKey: @"objectID"];
|
||||
objectID = [coder decodeObjectForKey: @"objectID"];
|
||||
}
|
||||
else if ([coder containsValueForKey: @"id"])
|
||||
{
|
||||
// 4.6+ XIBs....
|
||||
NSString *string = [coder decodeObjectForKey: @"id"];
|
||||
if (string && [string isKindOfClass:[NSString class]] && [string length])
|
||||
{
|
||||
objectID = [string intValue];
|
||||
}
|
||||
else
|
||||
{
|
||||
NSString *format = [NSString stringWithFormat:@"%s:class: %@ - object ID is missing or zero!",
|
||||
__PRETTY_FUNCTION__, NSStringFromClass([self class])];
|
||||
[NSException raise: NSInvalidArgumentException
|
||||
format: format];
|
||||
}
|
||||
objectID = [coder decodeObjectForKey: @"id"];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -632,7 +621,7 @@
|
|||
return parent;
|
||||
}
|
||||
|
||||
- (NSInteger) objectID
|
||||
- (id) objectID
|
||||
{
|
||||
return objectID;
|
||||
}
|
||||
|
@ -678,7 +667,7 @@
|
|||
return orderedObjects;
|
||||
}
|
||||
|
||||
- (id) objectWithObjectID: (NSInteger)objID
|
||||
- (id) objectWithObjectID: (id)objID
|
||||
{
|
||||
NSEnumerator *en;
|
||||
IBObjectRecord *obj;
|
||||
|
@ -686,7 +675,7 @@
|
|||
en = [orderedObjects objectEnumerator];
|
||||
while ((obj = [en nextObject]) != nil)
|
||||
{
|
||||
if ([obj objectID] == objID)
|
||||
if ([[obj objectID] isEqual:objID])
|
||||
{
|
||||
return [obj object];
|
||||
}
|
||||
|
@ -760,7 +749,7 @@
|
|||
return [[objectRecords orderedObjects] objectEnumerator];
|
||||
}
|
||||
|
||||
- (NSDictionary*) propertiesForObjectID: (int)objectID
|
||||
- (NSDictionary*) propertiesForObjectID: (id)objectID
|
||||
{
|
||||
NSEnumerator *en;
|
||||
NSString *idString;
|
||||
|
@ -768,7 +757,7 @@
|
|||
NSMutableDictionary *properties;
|
||||
int idLength;
|
||||
|
||||
idString = [NSString stringWithFormat: @"%d.", objectID];
|
||||
idString = [NSString stringWithFormat: @"%@.", objectID];
|
||||
idLength = [idString length];
|
||||
properties = [[NSMutableDictionary alloc] init];
|
||||
en = [flattenedProperties keyEnumerator];
|
||||
|
|
Loading…
Reference in a new issue