xcode framework

           xcode有个framework工程模板,用来提取公共代码和资源,成为独立的工程文件。基本的用处很简单,但是用法配置却折腾了我几天。

       新建一个framework工程F,建基本的窗口和按钮、按钮响应的文件,也可以尝试加载一下图片;配置Build Phases中的Copy Headers和Copy Bundle Resources两项,前者将Project中的头文件全部移交到Public中,后者将图片和nib文件全部添加进去。编译输出,就会生成需要的framework包供测试工程调用了。

       新建一个测试工程T,基本的窗口和按钮、按钮响应的文件,在.m文件中添加framework工程中需要用到的头文件,使用其中的方法创建其中的窗口、调用其中的资源。

       当framework中包含png和nib文件时,基本的响应流程:

①T工程中的按钮事件调用F工程中的打开窗口函数,例如:

 

        -(IBAction)btnCallF:(id)sender
        {
            OpenWindow(win_index,isblock,args);
        }

       OpenWindow是framework中实现打开窗口的一个c函数,不属于任何接口。m文件内部再定义一个全局变量表示窗口控制视图指针NSWindowController *sp来记录当前win_index对应内部的哪个窗口,isblock表示是否是阻塞方式调用BOOL,args表示传入传出参数数组 NSmutabelArray *args。当然,framework内部会先初始化,在所有窗口的init函数中实现初始化窗口对应关系。最底下给出的例子中没有这样做,用一个window(single window/windowcontroller)+view(view/viewcontroller list)列表的形式,在window的初始化函数中初始化对应关系。

       有关模态调用窗口和自适应view尺寸的详细代码见例子中的displayViewController和runModalWindow。

②调试

      当framework中的内容很多,修改频繁时,就需要调试了。在F工程的edit scheme中设置Run XXX列表项的Info标签下的Executable下拉框中对应的app为测试工程生成的APP。就可以不用打log调试framework了

      代码整理一下,这周之内发吧。


 

 

 

posted @ 2013-04-02 11:21  javawebsoa  Views(277)  Comments(0Edit  收藏  举报