• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: objc looks for Tiger class which should be weak-linked
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: objc looks for Tiger class which should be weak-linked


  • Subject: Re: objc looks for Tiger class which should be weak-linked
  • From: Jerry Krinock <email@hidden>
  • Date: Thu, 23 Aug 2007 10:47:24 -0700

On 2007 Aug, 22, at 7:42, Kyle Sluder wrote:

I'm not sure how far you'll get by using a framework rather than a bundle. I was thinking it would be easier to load a bundle at runtime. Frameworks, as far as I know, are loaded by the dynamic linker when you run the program and so I think you're going to end up with the same problem that you originally had.

Yes, I was taking things one step at a time here. Actually, I thought I was going to put a framework in a bundle, but after playing with Xcode some I learned that a bare "Cocoa Bundle" project will actually ^compile^ code. I still had to do all the refactoring, so not much work was wasted.


Anyhow, Kyle, your remarks above are correct, and it works, and it's done, and I thank you very much for helping me, since I never would have figured this out from reading Apple's "Cross-Development Programming Guide". The "Bundle Programming Guide" explains how to load code from bundles, but doesn't mention that cross-development when an ^entire^class^ is missing from the previous OS is a very good reason why one would want to do such a silly thing. (I've submitted a documentation bug, suggesting that they tie this together.)

Creating the Cocoa Bundle doesn't seem to be documented very much either, but fortunately it seems to "just work" similar to other project types.

Here's a little function I wrote to create an instance of a class defined in a bundle:

+ (id)allocInitInstanceOfClassNamed:(NSString*)className
                      inBundleNamed:(NSString*)bundleName {

NSString* bundlePath = [[NSBundle mainBundle] pathForResource:bundleName
ofType:@"bundle"] ;
id instance = nil ;
if (bundlePath) {
Class class ;
NSBundle* bundle = [NSBundle bundleWithPath:bundlePath] ;
if (bundle) {
if ((class = [bundle classNamed:className])) {
instance = [[class alloc] init] ;
}
else {
NSLog(@"Could not load class %@ from bundle %@", className, bundleName) ;
}
}
else {
NSLog(@"Could not load bundle at %@", bundlePath) ;
}
}
else {
NSLog(@"Could not get path for bundle %@", bundleName) ;
}


    return instance ;
}






_______________________________________________ Do not post admin requests to the list. They will be ignored. Xcode-users mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Follow-Ups:
    • Re: objc looks for Tiger class which should be weak-linked
      • From: "Kyle Sluder" <email@hidden>
References: 
 >objc looks for Tiger class which should be weak-linked (From: Jerry Krinock <email@hidden>)
 >Re: objc looks for Tiger class which should be weak-linked (From: Chris Suter <email@hidden>)
 >Re: objc looks for Tiger class which should be weak-linked (From: Jerry Krinock <email@hidden>)
 >Re: objc looks for Tiger class which should be weak-linked (From: "Kyle Sluder" <email@hidden>)

  • Prev by Date: Re: gdb cvs
  • Next by Date: Re: objc looks for Tiger class which should be weak-linked
  • Previous by thread: Re: objc looks for Tiger class which should be weak-linked
  • Next by thread: Re: objc looks for Tiger class which should be weak-linked
  • Index(es):
    • Date
    • Thread