Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

Error on SDK 4.0 - when [Object createRemote] > "Data Formatters temporarily unavailable " ...

#78

Hello,

I have a problem using the method [Object createRemote], I got the following error :
Data Formatters temporarily unavailable, will re-try after a 'continue'. (Not safe to call dlopen at this time.)

It is strange because i have it only on SDK 4.0 (on 3.2 it works perfectly).

More exactly, when debugging, i found out that the error is coming from : (NSObject+ObjectiveRessource.m :90)

  • (SEL) getRemoteSerializeMethod { return (nil == activeResourceSerializeMethod) ? @selector(toXMLElementExcluding:) : activeResourceSerializeMethod; }

Could you help me with this problem ?

It is because this is not supported for SDK 4.0 ?

Thanks for your help.

Reported by mat · June 25th, 2010 @ 06:46 PM

State: new
Milestone: none
Assigned to: Joshua Vickery Joshua Vickery

Activity

  1. Hippie Hacker
    Hippie Hacker
    • Assigned user set to Joshua Vickery
    • Milestone order changed from 0 to 0

    I'm having a similar problem. I looked at the github, website and mailing list. All appear to be dead for more than a year. Am I missing something? This looks really cool! What happened?

    June 28th, 2010 @ 08:27 PM

  2. Hippie Hacker
    Hippie Hacker

    I see some activity here I must be looking in the wrong places.

    June 28th, 2010 @ 08:28 PM

  3. lukaso
    lukaso

    In the file Serialization/XML/NSDictionary+XMLSerializableSupport.m replace/patch the method below with this version. This will fix the XML version of the code, but not the JSON version, and in a very ugly way. But then what Apple did, is very ugly, so this is at best a workaround. Also, please feel free to improve my code, as I was not trying to do this in the best way.

    
    - (NSString *)toXMLElementAs:(NSString *)rootName excludingInArray:(NSArray *)exclusions
                            withTranslations:(NSDictionary *)keyTranslations andType:(NSString *)xmlType {
    
        NSMutableString* elementValue = [NSMutableString string];
        NSArray * iOS4Exclusions = [NSArray arrayWithObjects:
                                         @"accessibilityFrame",
                                         @"accessibilityHint",
                                         @"accessibilityLabel",
                                         @"accessibilityLanguage",
                                         @"accessibilityTraits",
                                         @"accessibilityValue",
                                         @"isAccessibilityElement",
                                         nil];  
        id value;
        NSString *propertyRootName;
        for (NSString *key in self) {
            // Create XML if key not in exclusion list
            if(![exclusions containsObject:key] && ![iOS4Exclusions containsObject:key]) {
                value = [self valueForKey:key];
                propertyRootName = [[self class] translationForKey:key withTranslations:keyTranslations];
                [elementValue appendString:[value toXMLElementAs:propertyRootName]];
            }
        }
        return [[self class] buildXmlElementAs:rootName withInnerXml:elementValue andType:xmlType];
    }
    

    To explain why the bug is occurring: For some reason which I can't understand at all, in the iOS4 SDK, Apple has decided to add accessibility properties to all NSObjects, when really all they want to make sure is that all UIKit objects have them. They do this via categories. For example, in the UIKit.framework/Headers/UIAccessibility.h they have added the following:

    
    @interface NSObject (UIAccessibility)
    
    ...
    
    @property(nonatomic) BOOL isAccessibilityElement;
    
    ...
    

    Personally, I think this is shocking coding, but maybe I don't understand something.

    July 6th, 2010 @ 06:50 PM

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.