【问题标题】:How to print something to the console in Xcode?如何在 Xcode 中将内容打印到控制台?
【发布时间】:2014-04-14 10:21:02
【问题描述】:

如何将内容打印到Xcode 的控制台,是否可以从应用程序本身查看Xcode 控制台?

谢谢!

【问题讨论】:

    标签: objective-c xcode


    【解决方案1】:

    如何打印:

    NSLog(@"Something To Print");
    

    或者

    NSString * someString = @"Something To Print";
    NSLog(@"%@", someString);
    

    对于其他类型的变量,使用:

    NSLog(@"%@", someObject);
    NSLog(@"%i", someInt);
    NSLog(@"%f", someFloat);
    /// etc...
    

    你能在手机上显示吗?

    默认情况下不是,但您可以设置一个显示来显示。

    Swift 更新

    print("Print this string")
    print("Print this \(variable)")
    print("Print this ", variable)
    print(variable)
    

    【讨论】:

    • 如果有办法,我还没听说过!
    • 就我而言,它没有在控制台上打印。但是, printf 替代方案做到了。
    • 完美!正是我想要的。
    【解决方案2】:

    @Logan 完美地表达了这一点。可能值得指出的一点是您可以使用

    printf(whatever you want to print);
    

    例如,如果您正在打印一个字符串:

    printf("hello");
    

    【讨论】:

    • 这样更安全:printf("%s", urVariableName);
    • 如果变量是NSString-type,那么我从printf() 得到的只是一个指向字符串的乱码指针。然而,根据我看到的用法,NSString 似乎仍然比 Objective-R 中的 char 数组更受欢迎。
    【解决方案3】:

    三种方法:

    在 C 语言中(命令行工具)也适用于 Objective C:

    printf("Hello World");
    

    在目标 C 中:

    NSLog(@"Hello, World!");
    

    在带有变量的 Objective C 中:

    NSString * myString = @"Hello World";
    NSLog(@"%@", myString);
    

    在带有变量的代码中,使用类NSString创建的变量被输出为NSLog。 %@ 将文本表示为变量。

    【讨论】:

      【解决方案4】:

      @Logan 说得很完美。但我想在这里添加一个替代方案,

      如果您想查看只是您的应用程序的日志,那么您可以 一个自定义方法,它在documents中保持将日志保存到文件 目录 然后您就可以从您的应用程序中查看该日志文件。

      在应用发布且用户下载后,应用的开发者有一个很好的优势。因为您的应用将能够向开发人员发送日志和崩溃报告(当然需要设备用户的权限!!!),这将是改进您的应用的方式。

      如果有其他方法可以做同样的事情,请告诉我(致其他 SO 用户)。 (比如默认的苹果功能什么的)

      让我知道它是否有帮助或者你想要更多的想法。

      【讨论】:

      • 我们应该可以给答案加星标。从来没有想过这样做。
      • 我第一次在 Stack Overflow 上大喊大叫!
      【解决方案5】:

      您也可以使用断点。假设您想要的值定义在断点的范围内,您有 3 个选项:

      在控制台打印它:

      po some_paramter
      

      在objective-c 中记住不能使用self 的属性。

      po _someProperty
      po self.someProperty // would not work
      

      po 代表打印对象。


      Or 可以只使用 Xcode 'Variable Views' 。看图片

      我强烈推荐看看 Apple 的 Debugging with Xcode


      Or 只是在您的代码中悬停。如下图。

      【讨论】:

        【解决方案6】:

        在某些环境中,NSLog() 将无响应。但是还有其他方法可以获得输出...

        NSString* url = @"someurlstring";
        printf("%s", [url UTF8String]);
        

        通过使用带有适当参数的printf,我们可以这样显示。这是我发现在在线 Objective-C 沙盒环境中工作的唯一方法。

        【讨论】:

          【解决方案7】:

          在带有 Xcode 的 Swift 中,您可以使用 print() 或 NSLog()。

          print() 只是输出你的文本。 仅此而已。

          NSLog() 除了你的文本输出时间和其他有用的信息到调试控制台。

          【讨论】:

            猜你喜欢
            • 2019-10-24
            • 1970-01-01
            • 2013-01-21
            • 2011-08-06
            • 2015-03-16
            • 1970-01-01
            • 2021-02-17
            • 1970-01-01
            • 2012-02-04
            相关资源
            最近更新 更多