ios点餐系统源码学习

最近几天看了一个ios点餐系统的源码,学习了不少东西,对接下来自己要做的2个项目都有启发,在这里总结一下一些对自己比较有用的信息,源码会在文章末尾给出下载链接。

这个程序的主要界面就是一个TabBarController。总共三个标签,第一个是所有的可点的菜,第二个是已点的菜,第三个是可以留言或者查看所有留言。

下面是第一个页面:


右上角的i按钮是添加新菜,每个cell中的order就是点餐咯,可以重复按多次。

首先说下这个列表的数据是存放在coredata中的,这个项目的coredata有两个实体,一个是dishes保存每一道菜的名字,id,价格,描述,菜系等。还有一个实体是type保存菜系。

这个项目用coredata的方式,正好是我想学的。

就是在新建项目的时候勾选use coredata,那么在appdelegate中就会出现与coredata响应的代码了,只需要根据自己的需要稍微修改即可。或者是自己在已有的项目中添加一个coredata文件,然后将一个已经勾选了use coredata的项目中的appdelagate中的一些代码复制过来即可。

那么在各个文件中我需要用到coredata的时候 要怎么操作呢?看下面的代码:

	HotelAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
	//connection
	NSManagedObjectContext *context = [appDelegate managedObjectContext];
	//table 
	NSEntityDescription *entityDescr =[NSEntityDescription entityForName:@"Dishes" inManagedObjectContext:context];
	//query
	NSFetchRequest *request = [[NSFetchRequest alloc] init];
	[request setEntity:entityDescr];
	//pred
	//NSPredicate *pred = [NSPredicate predicateWithString:@"id=1"];
	
	NSSortDescriptor *nameDescriptor = [[NSSortDescriptor alloc] initWithKey:@"typeid" ascending:YES];
	NSArray *arraySortDescriptor = [[NSArray alloc] initWithObjects:nameDescriptor, nil];
	[request setSortDescriptors:arraySortDescriptor];
	[arraySortDescriptor release];
	
	NSError *error;
//	NSManagedObject *aDish = nil;
//	NSNumber *id = [NSNumber numberWithInt:1];
	NSArray *objects = [context executeFetchRequest:request error:&error];
	
	if(objects != nil){
		self.list = objects;
	}	

需要拿已存在于coredata中的文件的时候,就用上面的步骤就可以咯 拿到的数据就在最后的self.list中了

可以看到上面的tableView是自己绘制的,先看下面代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
	
	NSUInteger row = [indexPath row];
	NSManagedObject *theObj = [self.list objectAtIndex:row];
	
	NSNumber *id = [theObj valueForKey:@"id"];
	NSInteger typeid = [[theObj valueForKey:@"typeid"] intValue];
	NSLog(@"tpyeid:%d",typeid);
	
    static NSString *CellIdentifier = @"Cell";
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
	
	UIColor *elemBgColor = [UIColor clearColor];
		
	UIImage
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
一、电子菜单的优势分析和效益分析 1. 提高效率 菜单立即通过高速网络传送到厨房和收银台,厨房打印机会自动分类将点菜信息打印到各个厨房,催菜、叫起、打包等各种状态随时获悉,并实现最佳排菜上菜方式,从而减少服务成本、节约时间成本、提高工种效率。 2. 视觉餐饮 餐馆状态视觉化---每个餐桌的各种状态都反映在屏幕上,直观、形象; 菜肴名称视觉化---每个菜肴的真实图片都显示在名称旁,生动、逼真; 3. 智能服务 智能排行,获悉最受大众喜欢的菜肴,让顾客品尝到经典菜式;智能推荐,采用营养学原理等,让顾客吃得更有营养;快速查菜,只需拼音首字母,即可找到您需要的菜品。 4. 避免错误 账单计算机自动结算,毋须人工计算,可以避免错误。 5. 自动统计 可以随时查看当日、当月、或任何时间内的销售统计信息和营业额统计。 6. 库存管理 对餐馆库存也加以管理。 7. 精简人手 由于提高了效率,合理的按排,可以减少雇佣服务人员。 8. 提高质量 服务人员毋须站在餐桌旁,可以随叫随到,提高了服务质量;满足顾客不同的口味、份量、做法等需求;顾客可对菜肴、环境等进行评价,提供真实的评价信息,为餐馆的改进提供了方向,从而实现人性化服务。 9. 提高档次 支持多国语言,提供国际化服务;时尚流行的外观,触摸点菜的理念,营造了优雅的环境,也提高了餐馆档次,可以吸引更多的顾客。 10. 拒绝作弊 从源头上拒绝跑单、漏单等疏漏和个别作弊行为。 11. 有据可查 从点菜开始,所有环节都在计算机的掌控之下,可以避免上错台或漏上菜的情况,一切都有据可查。 12. 影音娱乐 音乐播放、视频短片,享受音乐视觉大餐,就餐娱乐两不误。 13. 功能齐全 该平台包括开台、点菜、加菜、退菜、催菜、缓菜等日常操作;当前营业状况查看、预订查看、桌台账单查看等查询功能;支持口味、做法、退菜原因等注释性信息;支持按类别浏览点菜、菜品编号点菜、菜品拼音首字母模糊点菜3种点菜模式;其功能涵盖餐饮前台营业所有业务流程,适用于各种大、中、小型餐馆。 14. 操作简便 前台使用电子菜单、POS点菜做为客户端,所有的操作都是笔触式和键盘输入,所以操作非常方便,即使计算机水平比较差的服务员使用也没有任何问题。 电子菜单的效益分析 qq77211022 13762930029
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值