源代码学习笔记

预计2周


2013.4.7

选定开源项目,下载代码并在模拟器上运行通过。

准备弄清代码结构,各界面之间的连接关系,以及使用到的各个库的作用。


2013.4.8

main--->info.plist---->MainWindow.nib--->appDelegate.m


2013.4.11


appDelegate.m文件

{

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{    

//1)可以使用这种方式来捕获异常

NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);

[self setup];

{

//2)使用开源库cocoalumberjacklog http://code.google.com/p/cocoalumberjack/

     [DDLog addLogger:[DDTTYLogger sharedInstance]];


//3)使用开源库ASIHTTPRequest处理网络部分   http://allseeing-i.com/ASIHTTPRequest

     [ASIHTTPRequest setDefaultUserAgentString:device];


//使用了XMPPFramework

//采用XMPP协议,一般采用openfire服务器。而后续打算使用J2EE的方式,采用http协议,目前不细看xmpp

_xmppClient = [[iKnowXMPPClient alloc] init];

      [_xmppClient setupStream];

//4)在一个工程里采用下面的方式来使得既支持iphone又支持ipad

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {

        [self setupMainView_iPhone];

{

// 5)使用MainViewController作为主界面

{

//mainViewController继承自baseViewController,

                                              //baseViewController负责处理tableview的显示部分

//mainViewController负责处理navigation bar部分,以及bar item触发的事件

//?明天继续看mainviewcontroller

}

//6)使用IIViewDeckController来达到类似PATH2.0的界面切换效果,连接主界面,左右界面。

/* 

(7) Prefix.pch文件里定义了全局包含的文件,而在IIViewDeckController.h文件中有如下定义

@interface UIViewController (UIViewDeckItem) 

因此每个UIViewController都和deckview关联起来

IIViewDeckController的实现和使用是重点,他构成了整个的主界面

https://github.com/Inferis/ViewDeck#readme

*/

}

    }

    else {

        [self setupMainView_iPad];

    }



}


}






知识点



在一个类中使用到的成员函数,虽然没有在头文件中声明,但是在其继承类中仍然可以被重定义。


在文件Baseviewcontroller.m中定义下面两个函数

- (void)viewDidLoad {

   BOOL result = [selfgetArticleList:0length:SECTION_LENGTHuseCacheFirst:YES];

}


- (BOOL)getArticleList:(NSInteger)startPosition length:(NSInteger)length useCacheFirst:(BOOL)useCacheFirst

{

   returnYES;

}



mainViewController.m文件中(mainViewController继承自Baseviewcontroller

- (void)viewDidLoad {

//执行时,调用的是mainViewController中定义的函数

    [superviewDidLoad];

}

//覆盖父类的定义,虽然该函数没有在.h文件中声明

- (BOOL)getArticleList:(NSInteger)startPosition length:(NSInteger)length useCacheFirst:(BOOL)useCacheFirst

{

   returnNO;

}


你可能感兴趣的:(源代码学习笔记)