A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 学以致用表初衷 中级黑马   /  2016-2-5 11:39  /  870 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

你好。我想声明一个结构体 或者一个枚举
  1. typedef enum {man,woman,yao}Sex;
  2. @interface Person : NSObject
  3. {
  4.     NSString *_pName;
  5.     Sex *_sex;//<span style="line-height: 30.8px; background-color: rgb(255, 255, 255);">这里我Sex *sex; 和Sex sex; 有什么区别???</span>
  6.     int _age;
  7.     float _high;
  8.     Goods *_food;

  9. }
  10. @property(nonatomic,assign)int age;
  11. @property(nonatomic,assign) float high;
  12. @property(nonatomic,retain)NSString * name;
  13. @property(nonatomic,assign)Sex * sex;
复制代码
还有定义结构体的时候 如果想用SET方法定义一个变量的时候。
  1. #import <Foundation/Foundation.h>
  2. typedef  struct{

  3.     int year;
  4.     int month;
  5.     int day;

  6. }ProduceDate;



  7. @interface Goods : NSObject
  8. {

  9.     NSString *_name;
  10.     float _price;
  11.     float _weight;
  12.     NSString *_picture;
  13.     ProduceDate* _birth;//这里是不是必须就要加* 要不然主函数就无法定义变量值???
  14.     NSString * _expireDa;
  15.    
  16. }
  17. @property(nonatomic,retain) NSString * name;
  18. @property(nonatomic,assign) float price;
  19. @property (nonatomic,assign)float weight;
  20. @property(nonatomic,retain) NSString * picture;
  21. @property(nonatomic,assign) ProduceDate* birth;


  22. @end
复制代码




8 个回复

倒序浏览
Sex *_sex; 和Sex _sex; 有什么区别???
答:不需要加*,多此一举(在oc中只有对象前面才加*)
ProduceDate* _birth; 这里也一样不需要*,多此一举

主函数中想给_birth赋值的话
  1. #import <Foundation/Foundation.h>

  2. typedef  struct{
  3.    
  4.     int year;
  5.     int month;
  6.     int day;
  7.    
  8. }ProduceDate;

  9. @interface Goods : NSObject
  10. {
  11.    
  12.     NSString *_name;
  13.     float _price;
  14.     float _weight;
  15.     NSString *_picture;
  16.     ProduceDate _birth;//这里是不是必须就要加* 要不然主函数就无法定义变量值???
  17.     NSString * _expireDa;
  18.    
  19. }
  20. @property(nonatomic,copy) NSString * name;
  21. @property(nonatomic,assign) float price;
  22. @property (nonatomic,assign)float weight;
  23. @property(nonatomic,copy) NSString * picture;
  24. @property(nonatomic,assign) ProduceDate birth;

  25. @end

  26. @implementation Goods

  27. @end



  28. int main(int argc, const char * argv[]) {
  29.     @autoreleasepool {
  30.         
  31.         Goods *good = [Goods new];
  32.         [good setBirth:(ProduceDate){1999,9,9}];
  33.         
  34.         NSLog(@"%d-%d-%d",[good birth].year,[good birth].month,[good birth].day);
  35.         
  36.     }
  37.     return 0;
  38. }
复制代码




回复 使用道具 举报
韦德460 发表于 2016-2-5 13:45
Sex *_sex; 和Sex _sex; 有什么区别???
答:不需要加*,多此一举(在oc中只有对象前面才加*)
ProduceDa ...

非常非常感谢。
但是我还是有个疑问
我如果在结构体里 声明的时候 我用
produceDate * _birth.
这样的话 我主函数定义变量的时候 就可以用另一种方法了呀。G.birth->year =100;G.birth->month.
有没有规定 必须使用哪一种??
回复 使用道具 举报
学以致用表初衷 发表于 2016-2-5 14:16
非常非常感谢。
但是我还是有个疑问
我如果在结构体里 声明的时候 我用

没有规定!!!
回复 使用道具 举报

谢谢。谢谢~~~
回复 使用道具 举报

不用谢不用谢,麻烦帮我去顶一下贴
长沙1220iOS基础班王锐,生活的理想就是为了理想的生活!
http://bbs.itheima.com/thread-275739-1-1.html
(出处: 黑马程序员IT技术论坛)
回复 使用道具 举报
韦德460 发表于 2016-2-5 14:36
不用谢不用谢,麻烦帮我去顶一下贴
长沙1220iOS基础班王锐,生活的理想就是为了理想的生活!
ht ...

你好我想问一下。。我准备 后付费 进入就业办。。流程怎么样??难吗。。??只要看了视频 知识掌握了 是不是都没什么问题??
回复 使用道具 举报
学以致用表初衷 发表于 2016-2-5 14:47
你好我想问一下。。我准备 后付费 进入就业办。。流程怎么样??难吗。。??只要看了视频 知识掌握了 是 ...

只要你学的好,黑马不会不要你的
回复 使用道具 举报
学习学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马