Thanks, I’ll try that asap but I’m still puzzled by the fact that it works just fine with 32 bits… Any idea why?
Eyal > On Jun 22, 2015, at 2:07 AM, Nick Blievers <[email protected]> wrote: > > Okay so that is exactly the problem. At run time the dynamic linker is going > to try and resolve various symbols (lazy linking would avoid this on plain C > symbols, and your code would probably work in that case, but things are a bit > more complex with ObjC), including NSDataDetector. > > To avoid this you need to use something like NSClassFromString, so that all > references to the object are dynamic. > > Something like this (rough pseudocode) > > Class NSDataDetectorClass = NSClassFromString(@"NSDataDetector”); > if(NSDataDetectorClass) > { > id detector = [NSDataDetectorClass > dataDetectorWithTypes:NSTextCheckingTypeLink error:&error]; > > etc > > } > > > If you do it this way you can also avoid the strict version check… if > NSDataDetector class exists, you don’t need a version check. > > > Hope this helps, > > Nick > >> On 22 Jun 2015, at 8:53 am, Eyal Redler <[email protected]> wrote: >> >> Thanks for your response Nick. >> >> I’m not using NSClassFromString. >> >> Following is what I’m using. Note that this code works just fine in 32 bit >> and that the crash is at launch time - way before this code is actually >> executed, if at all. >> >> Eyal >> >> - (NSArray*)detectURLs >> { >> BOOL useHomegrown; >> >> useHomegrown=(floor(NSAppKitVersionNumber) < NSAppKitVersionNumber10_7); >> if (useHomegrown) >> { >> return [self myDetectURLS]; >> } >> else >> { >> NSMutableArray* result; >> NSArray* matches; >> NSError *error; >> NSDataDetector *detector; >> >> result=nil; >> error=NULL; >> detector=[NSDataDetector >> dataDetectorWithTypes:NSTextCheckingTypeLink error:&error]; >> >> matches=[detector matchesInString:self options:0 >> range:NSMakeRange(0, [self length])]; >> for (NSTextCheckingResult* match in matches) >> { >> if ([match resultType] == NSTextCheckingTypeLink) >> { >> if (result==nil) >> result=[[NSMutableArray alloc] init]; >> [result addObject:[match URL]]; >> } >> } >> return [result autorelease]; >> } >> } >> >> >> >> >>> On Jun 22, 2015, at 12:04 AM, Nick Blievers <[email protected]> >>> wrote: >>> >>> It sounds like your run time checks aren’t right. Can you show us how you >>> have done it? Are you using NSClassFromString()? >>> >>> Nick >>> >>>> On 22 Jun 2015, at 6:49 am, Eyal Redler <[email protected]> wrote: >>>> >>>> My fat 32/64 Mac app is crashing at launch on 10.6 as follows: >>>> >>>> Dyld Error Message: >>>> Symbol not found: _OBJC_CLASS_$_NSDataDetector >>>> Referenced from: /Applications/Mellel.app/Contents/MacOS/MyApp >>>> Expected in: >>>> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation >>>> in /Applications/MyApp.app/Contents/MacOS/MyApp >>>> >>>> 1. I’m aware that NSDataDetector is not available on 10.6 and I’m checking >>>> at run time to see if I can use it or if I need to use my home-grown stuff. >>>> 2. Up until recently the app was 32 bit only, and ran just fine on 10.6 >>>> 3. I’ve just added 64 bit support so I suspected that the problem was >>>> related. >>>> >>>> I’ve asked the users to force the app to run in 32 bit mode and the >>>> problem is indeed gone so I guess it’s safe to conclude the problem only >>>> happens when you run in 64-bit mode (and possibly only on 10.6) >>>> >>>> What am I doing wrong here? >>>> >>>> Thanks in Advance, >>>> >>>> >>>> Eyal Redler >>>> ------------------------------------------------------------------------------------------------ >>>> "If Uri Geller bends spoons with divine powers, then he's doing it the >>>> hard way." >>>> --James Randi >>>> www.eyalredler.com >>>> >>>> >>>> >>>> _______________________________________________ >>>> Do not post admin requests to the list. They will be ignored. >>>> Xcode-users mailing list ([email protected]) >>>> Help/Unsubscribe/Update your Subscription: >>>> https://lists.apple.com/mailman/options/xcode-users/nblievers%40threatmetrix.com >>>> >>>> This email sent to [email protected] >>> >> > _______________________________________________ Do not post admin requests to the list. They will be ignored. Xcode-users mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/xcode-users/archive%40mail-archive.com This email sent to [email protected]
