NSLog中的打印方法

时间:2015-05-30 04:29:33

标签: ios objective-c

>>> [(a, ) + b for a, b in zip(l1, l2)]
[(1, 10, 20), (2, 30, 40), (3, 50, 60), (4, 70, 80)]

现在我有其他的方法,如分割分子和分母等。但我想在NSLog中的[myFraction]添加其他所有内容而不是新行

-(void) print {
    NSLog(@"%i/%i", numberator, denominator);   
}


Fraction *myFraction = [Fraction new];

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

无论如何我可以在[myFractions打印]中添加两个%i%i,所以我不必输入[myFraction numerator / denominator]

例如

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

结果:1​​/3

3 个答案:

答案 0 :(得分:3)

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

在您的情况下,您可以使用以下代码:

-(NSString*) description {
    return [NSString stringWithFormat:@"%i/%i", numerator, denominator];   
}

打印对象,然后像这样使用它

NSLog("Fraction = %@", yourFractionObj);

请参阅Describing objects

答案 1 :(得分:0)

而不是你的打印方法,覆盖你的Fraction类上的描述方法,如下所示:

- (NSString *)description {
    return [NSString stringWithFormat:@"%i/%i", numberator, denominator];   
}

使用NSLog打印对象时会自动调用描述方法,因此您现在可以编写如下日志:

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

如果出于其他原因需要打印方法,您现在可以这样写:

- (void) print {
    NSLog(@"%@", self);   
}

答案 2 :(得分:0)

您可以使用功能功能。它将使用类名打印方法名称。例如

的NSLog(@"%S" __func__);