预计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)使用开源库cocoalumberjack来log 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;
}