新聞頭條 軟體開發

2021-07-04 16:35:03 字數 3830 閱讀 9162

手機新聞時時在更新,而且內容格式不一,對於開發者來說必須好好進行需求分析 

今天講的這些問題適合初學者學習

這個專案使用了mvc 設計思路 將資料 view controller 進行分離 分別進行封裝 

這個專案 有幾個模組 有四種不同的cell 裡面的內容 也不同 ,我們要對其進行一層層封裝 

好的**不是一下完成的 我們需要先將基本功能完成,然後對我們的**進行重構,優化 

這樣以來**的質量會提公升,並且易於維護,增加了這款軟體的生命週期 

上主要**了:

//

// qhviewcontroller.h

#import @inte***ce qhviewcontroller : uiviewcontroller

@end

//  qhviewcontroller.m

#import "qhviewcontroller.h"

#import "qhnews.h"

#import "nsarray+ext.h"

#import "qhlargecell.h"

#import "qhlistcell.h"

#import "qhorigincell.h"

@inte***ce qhviewcontroller ()@property(nonatomic,strong)nsarray *newses;

@end

@implementation qhviewcontroller

-(nsarray *)newses

_newses = objs;

}return _newses;

}#pragma mark uitableviewdatasource **方法

-(nsinteger)numberofsectionsintableview:(uitableview *)tableview

-(nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section

-(uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath

cell.textlabel.text = @"test";

*/qhnews *news = self.newses[indexpath.row];

if ([news.category isequaltostring:@"large"])

if ([news.category isequaltostring:@"list"])

if ([news.category isequaltostring:@"origin"])

return cell;

}-(cgfloat)tableview:(uitableview *)tableview heightforrowatindexpath:(nsindexpath *)indexpath

if ([news.category isequaltostring:@"list"])

if([news.category isequaltostring:@"origin"])

return 120;

}return 100;

}-(bool)prefersstatusbarhidden

- (void)viewdidload

- (void)didreceivememorywarning

@end

檢視封裝:

//

// qhlargecell.h

#import #import "qhnews.h"

@inte***ce qhlargecell : uitableviewcell

@property(nonatomic,strong)qhnews *news;

+(id)largecellwithtableview:(uitableview *)tableview;

@end

//

// qhlargecell.m

#import "qhlargecell.h"

@inte***ce qhlargecell()

@property (weak, nonatomic) iboutlet uilabel *titlelabel;

@property (weak, nonatomic) iboutlet uiimageview *pictureimageview;

@property (weak, nonatomic) iboutlet uilabel *sourcelabel;

@property (weak, nonatomic) iboutlet uilabel *timelabel;

@end

@implementation qhlargecell

+(id)largecellwithtableview:(uitableview *)tableview

-(void)setnews:(qhnews *)news

- (void)awakefromnib

- (void)setselected:(bool)selected animated:(bool)animated

@end

資料模型封裝

//

// qhnews.h

//建立資料模型

#import @inte***ce qhnews : nsobject

/** * 新聞條目分類

*/@property(nonatomic,copy)nsstring *category;

/** * 記錄陣列

*/@property(nonatomic,strong)nsarray *pics;

/** * 資料**

*/@property(nonatomic,copy)nsstring *source;

/** * 發布時間

*/@property(nonatomic,copy)nsstring *time;

/** * 標題

*/@property(nonatomic,copy)nsstring *title;

/** * 用來記錄單張

*/@property(nonatomic,copy)nsstring *picture;

/** * 用來記錄推廣軟體的名稱

*//**

* 推廣軟體

*/@property(nonatomic,copy)nsstring *icon;

@property(nonatomic,strong)qhnews *news;

+(id)newswithdict:(nsdictionary *)dict;

-(id)initwithdict:(nsdictionary *)dict;

@end

//

// qhnews.m

#import "qhnews.h"

@implementation qhnews

+(id)newswithdict:(nsdictionary *)dict

-(id)initwithdict:(nsdictionary *)dict

return self;

}- (nsstring *)description

@end

python軟體開發目錄 軟體開發目錄規範

為了提高程式的可讀性與可維護性,我們應該為軟體設計良好的目錄結構,這與規範的編碼風格同等重要。軟體的目錄規範並無硬性標準,只要清晰可讀即可,假設你的軟體名為foo,筆者推薦目錄結構如下 foo core 存放業務邏輯相關 core.py api 存放介面檔案,介面主要用於為業務邏輯提供資料操作。ap...

迭代軟體開發

迭代軟體開發 整理 一 迭代軟體開發介紹 在迭代式開發方法中,整個開發工作被組織為一系列的短小的 固定長度 如 3周 的小專案,被稱為一系列的迭代。每一次迭代都包括了需求分 析 設計 實現與測試。採用這種方法,開發工作可以在需求被完整地確定之前啟動,並在一次迭代中完成系統的一部分功能或業務邏輯的開發...

軟體開發流程

課程的主講老師是msdn的特約講師邵志東先生。課程中間,邵志東老師介紹了軟體開發流程 程式設計師基本素質 關於質量控制和開發模板及專案組建設。邵老師首先介紹了軟體開發的流程,他把軟體開發分為了兩大類,即專案開發及產品開發。專案開發是公司根據某一客戶的需求單獨為某一客戶訂製的軟體 產品開發是公司針對某...