首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSLog中的Print方法

NSLog中的Print方法
EN

Stack Overflow用户
提问于 2015-05-30 12:29:33
回答 3查看 297关注 0票数 0
代码语言:javascript
复制
-(void) print {
    NSLog(@"%i/%i", numberator, denominator);   
}


Fraction *myFraction = [Fraction new];

        [myFraction setNumberator:1];
        [myFraction setDenominator:3];

现在我有了其他的方法,比如同时除以分子和分母等,但是我想在NSLog中添加包含其他所有内容的myFraction,而不是在新行上添加

代码语言:javascript
复制
NSLog(@"The value of my fraction is: %i/%i which equals to: %.3g * 100 = %.4g%%", [myFraction numberator], [myFraction denominator], [myFraction convertToNum], [myFraction multiplyBy100]);

有没有什么方法可以在myFractions打印中添加两个%i%i,这样我就不必键入myFraction分子/分母

例如:

代码语言:javascript
复制
NSLog(@"%@", [myFractions Print];

结果: 1/3

EN

回答 3

Stack Overflow用户

发布于 2015-05-30 12:48:29

您可以使用description方法。您可以在类中重写它,以返回类的字符串表示形式。

在您的示例中,您可以使用以下代码:

代码语言:javascript
复制
-(NSString*) description {
    return [NSString stringWithFormat:@"%i/%i", numerator, denominator];   
}

要打印该对象,您可以像这样使用它

代码语言:javascript
复制
NSLog("Fraction = %@", yourFractionObj);

参见Describing objects

票数 3
EN

Stack Overflow用户

发布于 2015-05-30 12:47:26

不使用print方法,而是像这样覆盖Fraction类的description方法:

代码语言:javascript
复制
- (NSString *)description {
    return [NSString stringWithFormat:@"%i/%i", numberator, denominator];   
}

当您使用NSLog打印对象时,将自动调用description方法,因此您现在可以像这样编写日志:

代码语言:javascript
复制
NSLog(@"The value of my fraction is: %@ which equals to: %.3g * 100 = %.4g%%", myFraction, [myFraction convertToNum], [myFraction multiplyBy100]);

如果出于其他原因需要print方法,现在可以像这样编写它:

代码语言:javascript
复制
- (void) print {
    NSLog(@"%@", self);   
}
票数 0
EN

Stack Overflow用户

发布于 2015-05-30 20:40:08

您可以使用funcFUNCTION。它将打印方法名和类名。例如

NSLog(@"%s",__func__);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30542270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档