【问题标题】:Is there an overview of all codes that can be used inside NSLog()?是否有可以在 NSLog() 中使用的所有代码的概述?
【发布时间】:2009-07-20 11:26:14
【问题描述】:

即%@ 用于字符串,%f 用于双精度...我不知道这些占位符的词,但如果有关于如何打印布尔值和其他值的列表会很棒。

【问题讨论】:

    标签: iphone objective-c cocoa-touch uikit nslog


    【解决方案1】:

    由于NSLogNSString 作为其参数,因此它使用NSString 格式说明符。这实际上与常见的printf 说明符相同。此外,%@ 说明符不限于 NSString 对象,而是适用于任何 Objective-C 对象。基类NSObject 提供了对象的通用描述,包括其类及其地址,但许多对象将提供特定于其类型的信息,例如集合类(NSArrayNSDictionary)将很好地提供其内容的格式化转储。您可以通过覆盖 -description 为您自己创建的对象提供此信息(有关更多信息,包括本地化功能,请参阅文档)。

    另请参阅:NSString Format Specifiers

    【讨论】:

    • "%@" 对任何 Objective-C 对象都无效,仅对响应“描述”的对象有效。如果我要创建自己的从 Object 派生的对象(在“objc/Object.h”中声明),它不一定与“%@”兼容。
    • 这是真的,尽管 NSString Format Specifiers 文档将其定义为。如果您正在构建自己的根类,即使添加 description 也是不够的。
    【解决方案2】:

    它是一个带有 %@ 扩展名的普通 C 格式字符串(它通过查询其 -description 方法打印任何 NSObject,而不仅仅是 NSStrings)。

    您可以在 printf manpage 中查看概述

    【讨论】:

    • 它是一个普通的 C 格式字符串,除了 (evil) %n 转换说明符。它不适用于 Objective-C 格式的字符串。
    【解决方案3】:

    此外,在 Mike Ash 的 NSBlog 博客上最近的“星期五问答”帖子中,有一个非常好的概述以及一些提示和技巧:

    http://www.mikeash.com/?page=pyblog/friday-qa-2009-07-17-format-strings-tips-and-tricks.html

    【讨论】:

      【解决方案4】:

      这是来自“Objective-C 2.0 编程”的小快照

      alt text http://img361.imageshack.us/img361/1438/picture1rze.png

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-06
        • 1970-01-01
        • 2010-12-20
        • 2011-04-19
        • 2019-03-25
        • 1970-01-01
        相关资源
        最近更新 更多