gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSPropertyListSerialization fails with OpenStepFormat on OSX


From: Matt Rice
Subject: Re: NSPropertyListSerialization fails with OpenStepFormat on OSX
Date: Mon, 27 Oct 2008 00:44:32 -0700

Fred Wrote:..
>> From the name of the format in the error message I gather that you are
>> complaining about an Apple bug here. Is this correct?

no its really a feature of them deprecating the openstep style plists,
at some point writing worked for legacy apps (as shown by the example
link Dave posted),
and then at some point it appears they have removed it allowing only
to read legacy and write xml plists...

if you look here it is clearly deprecated..

http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSPropertyListSerialization_Class/Reference/Reference.html

quote:
Important: The NSPropertyListOpenStepFormat constant is not supported
for writing. It can be used only for reading old-style property lists.

On Sun, Oct 26, 2008 at 2:07 PM, David Wetzel <address@hidden> wrote:
>> David Wetzel wrote:
>
>> > add [+NSPropertyListSerialization 
>> > dataFromPropertyList:format:errorDescription:]
>> > to base-additions, call the Apple implementation if format != 
>> > NSPropertyListOpenStepFormat
>> > if code runs on Apple.
>
>> What I cannot understand is your proposed solution to this problem. We
>> should replace the method in the GNUstep extensions, but still call the
>> Apple version of the same method in some cases? There may be way to do
>> this, but this is clearly a dangerous proposal.
>
> Why? It will do the same like on a GNUstep or OPENSTEP system.

I think Fred's 'clearly a dangerous proposal.' mostly is coming from
the fact that in order to override a method with the category and then
call the original implementation will require runtime hacking through
method swizzling, and overrides intended noon-functionality of their
foundation...

http://www.cocoadev.com/index.pl?MethodSwizzling

It may be worthwhile to think of a less invasive (not to mention
easier) change, of just exposing the GNUstep implementation of
NSPropertyListSerialization as GSPropertyListSerialization and adding
it to base-additions then using that in gdl2

>
>> Wouldn't it be easier to just convert property lists written on new Macs
>> to be used on old installations of EOModeler? GNUstep should be able to
>> do that conversion.
>
> I want to run DBModeler.app on OSX and read + write .eomodeld files in a 
> format all original
> EOModelers understand. Otherwise DBModeler is useless.
>
> http://developer.apple.com/documentation/Cocoa/Conceptual/PropertyLists/Articles/OldStylePListsTa
> sk.html
>

yeah, that works with GNUstep but there is also old WebObjects
installations which predate xml plists entirely

let me just add another slightly related tidbit here
https://savannah.gnu.org/bugs/?22364

DBModeler is also in the same position as cenon I think, it is wanting
the old style plists when NSValue's etc were encoded as strings
it looks like if we used NSPropertyListSerialization we might be able
to get rid of the places when we encode where we manually convert
everything to strings, and we could go back to just encoding NSValue's
which might clean up that code a bit too..

as it is, the code dates back from when there was 'one plist format to
rule them all.', which predates NSPropertyListSerialisation, and when
the GNUstep plist format was changed, we just coaxed the code into
encoding the correct object types that it expects to find...

anyhow, i'm pro reliable way to write old openstep style plists.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]