黑马程序员技术交流社区

标题: 急求解决。为什么我运行完后没有结果,求解答 [打印本页]

作者: 泥娃娃    时间: 2016-3-19 17:00
标题: 急求解决。为什么我运行完后没有结果,求解答
关于这道题,为何我这样写,什么结果都没有,求解释!!!
设计一个菜单类
*一个添加菜单的对象方法
*一个删除菜单的对象方法
*还有一个打印数组中所有菜单的对象方法
main.m
  1. #import <Foundation/Foundation.h>
  2. #import "CZCarte.h"
  3. #import "CZFood.h"
  4. int main(int argc, const char * argv[]) {
  5.     @autoreleasepool {
  6.         CZCarte *carte = [CZCarte new];
  7.         CZFood *f1 = [CZFood new];
  8.         f1.name = @"酸辣土豆丝";
  9.         f1.price = 12;
  10.         f1.info =@"辣椒炒土豆";
  11.         [carte addFood:f1];
  12.         [carte printCarte];
  13.     }
  14.     return 0;
  15. }
复制代码
菜单类
CZCarte.h
  1. #import <Foundation/Foundation.h>
  2. @class CZFood;
  3. @interface CZCarte : NSObject
  4. {
  5.     NSMutableArray * _foods;
  6. }

  7. /**添加菜*/

  8. -(void) addFood:(CZFood *) food;

  9. /**删除菜*/

  10. -(void) removeFood:(CZFood *) food;

  11. /**打印菜单*/

  12. -(void) printCarte;

  13. @end
复制代码

菜单类实现
CZCarte.m
  1. #import "CZCarte.h"
  2. #import "CZFood.h"
  3. @implementation CZCarte

  4. /**添加菜*/

  5. -(void) addFood:(CZFood *) food {
  6.    
  7.     [_foods addObject:food];
  8.    
  9. }

  10. /**删除菜*/

  11. -(void) removeFood:(CZFood *) food {
  12.    
  13.     [_foods removeObject:food];
  14.    
  15. }

  16. /**打印菜单*/

  17. -(void) printCarte {
  18.    
  19.     for (CZFood *food in _foods) {
  20.         
  21.         NSLog(@"菜名:%@",[food name]);
  22.         
  23.         NSLog(@"价格:%f",[food price]);
  24.         
  25.         NSLog(@"简介:%@",[food info]);
  26.         
  27.     }
  28. }
  29. @end
复制代码

菜类
菜类里没有实现,只有声明
CZFood.h
  1. #import <Foundation/Foundation.h>

  2. @interface CZFood : NSObject
  3. @property (nonatomic,strong) NSString *name; // 菜名
  4. @property (nonatomic,assign) float price;  //价格
  5. @property (nonatomic,strong) NSString *info; // 简介

  6. @end
复制代码







作者: MuziTian    时间: 2016-3-19 21:53
请检查for循环用的对么
作者: 泥娃娃    时间: 2016-3-20 08:55
MuziTian 发表于 2016-3-19 21:53
请检查for循环用的对么

没有的 ,每循环一次,打印一组菜名,价格和简介。数组里有几种菜,就会打印几种
作者: 278008379    时间: 2016-3-21 12:46
现在还不会,学会后再来
作者: 泥娃娃    时间: 2016-3-21 16:31
278008379 发表于 2016-3-21 12:46
现在还不会,学会后再来

{:2_36:}一起加油
作者: 外号狐狸    时间: 2016-3-23 14:22
forin加强这一这样用?基础版高手
作者: 起个名老说太长    时间: 2016-4-6 13:58
你没有把修改后才数据返回  试试把void 改成菜单类 ,再找个对象接收
作者: UKnowINeedYou    时间: 2016-4-6 16:45
@property (nonatomic,strong) NSString *name; // 菜名 @property (nonatomic,assign) float price;  //价格 @property (nonatomic,strong) NSString *info; // 简介          这里的两个strong换成copy试试   
作者: 张立鹏    时间: 2016-4-17 00:35
打印的方法里用到应该是更新后对象的值,所以应该给打印的方法加一个参数,并将这个修改后的实参返回
作者: 张立鹏    时间: 2016-4-17 00:37
  1. /**打印菜单*/

  2. -(CZFood *) printCarte :(CZFood *) food {
  3.    
  4.     for (CZFood *food in _foods) {
  5.         
  6.         NSLog(@"菜名:%@",[food name]);
  7.         
  8.         NSLog(@"价格:%f",[food price]);
  9.         
  10.         NSLog(@"简介:%@",[food info]);
  11.         
  12.     }
  13. }
  14. @end
复制代码

这样试试




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2