黑马程序员技术交流社区

标题: OC字符串输出为啥老是有警告啊0 0 [打印本页]

作者: 你不勇敢,    时间: 2014-12-14 20:03
标题: OC字符串输出为啥老是有警告啊0 0
/*/*
3.设计3个类,类之间的关系自拟(比如继承、组合)
1> 人
(1)属性
* 姓名
* 年龄

(2)方法
* 属性相应的set和get方法
* 设计一个对象方法同时设置姓名和年龄

2> 书
(1)属性
* 书名
* 出版社名称
* 作者(包含姓名和年龄)

(2)方法
* 属性相应的set和get方法

3> 学生
* 姓名
* 年龄
* 学号
* 书(随身带着一本书)

2> 方法
* 属性相应的set和get方法
* 设计一个对象方法-study:输出书名


// 书 拥有一个 作者 --> 组合
// 学生 是一个 人 --> 继承
// 学生 拥有一本 书 --> 组合

*/


#import <Foundation/Foundation.h>
/****************人************************/
@interface Person : NSObject
{
    NSString *_name;
    int _age;
}
- (void)setName:(NSString *)name;
- (NSString *)name;

- (void)setAge:(int)age;
- (int)age;

- (void)setName:(NSString *)name andAge:(int)age;
@end
/*****************书**********************/
@interface Book : NSObject
{
    NSString *_sname;//书名
    NSString *_publishing;//出版社
   
    Person *_person;//作者姓名与年龄
   
}
- (void)setSname:(NSString *)sname;
- (NSString *)sname;

- (void)setPublishing:(NSString *)publishing;
- (NSString *)publishing;

//- (void)setAuthor:(NSString *)author;
//- (NSString *)author;
@end
//书的实现
@implementation Book

- (void)setSname:(NSString *)sname
{
    _sname = sname;
}
- (NSString *)sname
{
    return _sname;
}

- (void)setPublishing:(NSString *)publishing
{
    _publishing = publishing;
}
- (NSString *)publishing
{
    return _publishing;
}
@end
/*****************学生**********************/
@interface Student : Person
{
    int _no;
    Book *_shu;
   
}
- (void)setNo:(int)no;
- (int)no;

- (void)study;
@end
int main()
{
    Person *p = [Person new];
   
    [p setName:@"woaixiangxiang"];
    [p setAge:22];
   
    [p setName:@"woaixiangxiang" andAge:22];
    //书的名字方法
    [Book setSname:"asdasd"];
    [Book setPublishing:@"asdasd"];
    //输出学生拥有的书的名字
    return 0;
}


//人的实现
@implementation Person
- (void)setName:(NSString *)name
{
   
    _name = name;
}
- (NSString *)name
{
    return _name;
}

- (void)setAge:(int)age
{
    _age =age;
}
- (int)age
{
    return _age;
}

- (void)setName:(NSString *)name andAge:(int)age
{
    [self setName:name];
    [self setAge:age];
}
@end


//学生的实现
@implementation Student
- (void)setNo:(int)no
{
    _no = no;
}
- (int)no
{
    return _no;
}


- (void)study
{
    NSLog(@"%@",[_shu sname]);
}

@end



屏幕快照 2014-12-14 20.02.27.png (140.21 KB, 下载次数: 33)

屏幕快照 2014-12-14 20.02.27.png

作者: 你不勇敢,    时间: 2014-12-14 20:05
为什么老是出这个警告0 0 视频里也没讲。 求大神告诉
作者: 你不勇敢,    时间: 2014-12-14 20:36
没人么  自顶
作者: 从今以后    时间: 2014-12-15 02:04
因为你的代码里好多悲伤脸= =! - (void)setPublishing - (void)setSname 这两个不是对象方法吗,你用的Book类调用的 编译器认为这方法应该是个类方法 但是你确实没有 所以警告你说类方法找不到
作者: 从今以后    时间: 2014-12-15 02:15
从今以后 发表于 2014-12-15 02:04
因为你的代码里好多悲伤脸= =! - (void)setPublishing - (void)setSname 这两个不是对象方法吗,你用的Boo ...

我用Xcode试了下直接编译报错 终端居然只是个警告= =学到这里开始用Xcode吧
作者: 你不勇敢,    时间: 2014-12-15 09:41
从今以后 发表于 2014-12-15 02:04
因为你的代码里好多悲伤脸= =! - (void)setPublishing - (void)setSname 这两个不是对象方法吗,你用的Boo ...

哦哦 我懂了0 0 谢谢啊  好简单的问题 0 0 我纠结半天 谢谢大神了 终端就是这样啊
作者: chasedream    时间: 2014-12-15 09:54
你还用类方法了?你类方法声明,实现了?




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