XCode访问自定义框架捆绑资源,即图像,xib文件

时间:2013-07-04 15:05:29

标签: objective-c xcode bundle static-libraries

我正在创建一个自定义框架,其中包含许多我将在几个不同项目中使用的类。我将把这个库交给其他开发人员,所以我需要我的代码保护

我遇到了这个看起来非常有用的教程

http://codefriend.blogspot.co.uk/2011/09/creating-ios-framework-with-xcode4.html

使用这个,我已经设法将我的应用程序变成一个框架,并且所有类都被复制并且代码受到保护,因为所有用户都会看到.h文件。所以我可以将它添加到任何未来的应用程序,但我不知道如何访问资源,即图像和XIB文件。

图像的一个解决方法是将.png文件转换为.png.h文件,过程就是这个

1) Open a terminal and "cd" to the directory that holds myImage.png
2) Run the command "xxd -i myImage.png myImage.png.h" -- This will turn the image into a .h header file
3) Include the new myImage.png.h file in the framework before building and make it a public header
4) After adding the framework to the project using it, import myImage.png.h
5) Load the data into a NSData object with [NSData dataWithBytes:myImage_png length:myImage_png_len];

这适用于图像,即使它是一种杂乱的方式。但是,这似乎不适用于XIB文件。作为测试,在我的框架项目中,我创建了一个名为TestController的新UIViewController,然后,我创建了框架,将其添加到我的新项目中,然后尝试像这样访问它

NSData *data = [NSData dataWithBytes:TestControllerVC_xib length:TestControllerVC_xib_len];
    NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    TestControllerVC *test = [[TestControllerVC alloc]initWithNibName:str bundle:nil];

    [self.navigationController pushViewController:test animated:YES];

该应用程序因此错误而崩溃

>     *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in
> bundle: 'NSBundle </Users/adam/Library/Application Support/iPhone
> Simulator/6.1/Applications/E9AEE10A-27A0-4363-B81D-D1DBE5DC7A51/TestAppWithFrameworkLib.app>
> (loaded)' with name <?xml version="1.0" encoding="UTF-8"?>.... (rest of xml printed)'

(它打印出TestController类的XML,不希望用整个xml文件阻塞帖子)

我的问题是,是否有更好的方式来访问资源?如果我访问目录中的TestBundle.Framework文件夹,您可以看到资源文件,但是当您将框架添加到应用程序时,您看到的只是标题文件夹(见下图)

将框架添加到应用程序时,是否存在未显示资源文件夹的原因?无论如何我都可以访问资源,因为xib文件肯定会添加到资源中,如下图所示。任何帮助将不胜感激!!!

Figure

enter image description here

1 个答案:

答案 0 :(得分:1)

http://www.nearinfinity.com/blogs/tyler_vernon/2012/07/17/creating-and-using-static-libraries-for-iphone-using-xcode-4.3.html

对于需要创建库并添加资源的任何其他人,本教程将为您完成工作。如果您有大量的课程要放入您的库中,那么设置会很费时间。希望这有助于其他任何有问题的人