黑马程序员技术交流社区
标题:
两种不同的形式,为什么打印出来的结果不同,求指导
[打印本页]
作者:
15578797612
时间:
2015-5-10 17:41
标题:
两种不同的形式,为什么打印出来的结果不同,求指导
NSLog(@"我的姓名是 %@ ",name);
复制代码
运行的结果是:
2015-05-10 17:31:51.201 ObjectC[2058:115020] 我的姓名是 %@
2015-05-10 17:31:51.203 ObjectC[2058:115020] person's name is lewis
2015-05-10 17:31:51.204 ObjectC[2058:115020] perspn's name is Jack
复制代码
NSLog(@"person's name is %@",name);
复制代码
运行的结果是:
2015-05-10 17:35:05.192 ObjectC[2099:116310] person's name is lewis
2015-05-10 17:35:05.194 ObjectC[2099:116310] person's name is lewis
2015-05-10 17:35:05.194 ObjectC[2099:116310] perspn's name is Jack
复制代码
为什么第一次打印出来的是‘%@’而第二次打印出来的却是具体的名字呢?二者什么区别
main.m文件:
//
// main.m
// ObjectC
//
// Created by zxy on 15/5/10.
// Copyright (c) 2015年 zxy. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
//创建person的实例对象
Person *person = [[Person alloc] initWithName:@"lewis"];
//给person发送实例消息sayHi
[person sayHi];//整行应该改为[person sayHi];
//打印当前person实例对象的姓名是什么
NSLog(@"person's name is %@",[person getName]);
//修改当前person实例对象的姓名,修改成Jack
[person setName:@"Jack"];
//打印当前实例对象的姓名
NSLog(@"perspn's name is %@",[person getName]);
/*
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
}
*/
return 0;
}
复制代码
Person.h文件:
//
// Person.h
// ObjectC
//
// Created by zxy on 15/5/10.
// Copyright (c) 2015年 zxy. All rights reserved.
//
#import <Foundation/Foundation.h>
//类的接口部分
@interface Person : NSObject
{
//添加当前类的属性
//字符串类型
NSString *name ;//姓名
}
//添加初始化方法
- (id)initWithName:(NSString *)_name;
- (void)sayHi;
//设置器,setter
- (void)setName:(NSString *)_name;
//设置访问器 getter
- (NSString *)getName;
@end
复制代码
Person.m文件:
//
// Person.m
// ObjectC
//
// Created by zxy on 15/5/10.
// Copyright (c) 2015年 zxy. All rights reserved.
//
#import "Person.h"
@implementation Person
- (id)initWithName:(NSString *)_name
{
//原始初始化
self = [super init];
//成功之后
if(self!=nil){
name = _name;
}
//返还当前对象
return self;
}
//设置器,setter
- (void)setName:(NSString *)_name
{
name = _name;
}
//设置访问器 getter
- (NSString *)getName
{
return name;
}
-(void)sayHi
{
//将字符串打印到控制台输出,类似于printf();
NSLog(@"person's name is %@",name);
}
@end
复制代码
65B0AE17-3FB3-41F7-8D8C-BC52907B66F3.png
(45.06 KB, 下载次数: 7)
下载附件
2015-5-10 17:26 上传
作者:
hehelaicaicai
时间:
2015-5-13 10:31
NSLog(@"我的姓名是 %@ ",name);
是不是%是中文的百分号啊,看你黏贴的是中文的。
作者:
mony
时间:
2015-5-13 13:15
本帖最后由 mony 于 2015-5-13 13:17 编辑
我认为是你的getname那里是不是有问题...反正看的有些别扭,感觉应该返回的是_name,当然是我的想法,不一定正确
作者:
guoqiangmailbox
时间:
2015-5-13 15:02
不用看的%你使用的是中文的字符,对比一下
作者:
wodeheimalife
时间:
2015-5-16 09:37
看的有点头晕,不明觉厉。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2