print swift_swift print - CSDN
  • init(format:_:)方法的语法形式如下: convenience init(format: NSString, _ args: CVarArg...) 其中,format用来指定一个需要格式化的字符串,args是向format中填空的。  let s:String=String.init(format:&...

     

    init(format:_:)方法的语法形式如下:

    convenience init(format: NSString, _ args: CVarArg...)

    其中,format用来指定一个需要格式化的字符串,args是向format中填空的。

     let s:String=String.init(format:"ddd%.2f",1.2233)

                 let ss:String=String.init(format:"ddd%@","1.2233")

                let sss:String=String.init(format:"ddd%tu",12233)

                print("\(s)--\(ss)--\(sss)")

     

     

    init(format:locale:_:)方法和init(format:_:)方法实现的功能是一样的,只不过它比init(format:_:)方法多了一个locale参数,此参数可以用来设置语言环境(每一个国家都有自己的语言环境,当开发者在开发程序时,使用适当的语言环境是很重要的),其语法形式如下:

    convenience init(format: NSString, locale: Locale?, _ args: CVarArg...)

     

    var l=Locale.current

    var str3=NSString(format: str1,locale: l,str2)     

     

     

     

     

    localizedStringWithFormat(_:_:)方法和init(format:locale:_:)、init(format:_:)方法唯一的不同之处在于localizedStringWithFormat(_:_:)方法是一个类方法,其语法形式如下:

    class func localizedStringWithFormat(_ format: NSString, _ args: CVarArg...) -> Self

    其中,format用来指定一个需要格式化的字符串,args是向format中填空的。

    print(NSString.localizedStringWithFormat("This is %@", str2)) 

     

     

     

    ================

     

    //print函数使用

    print("hellow")

    let x = 1, y = 2, z = 3

    print(x,y,z)

     

    let b = true

    print(b)//true

     

    print(x,y,z, separator: "--")

    //1--2--3

    //separator设置分割符,默认是" "

     

    print(x,y,z, separator: "--", terminator:":)")

    //1--2--3:)

    //terminator结束符,默认为回车

     

     

    print(y,"*",z,"=",y*z)

    //2 * 3 = 6

    //字符串插值

    print("\(y) * \(z) = \(y*z)")

    //2 * 3 = 6

     

     

     

    FILE    String    包含这个符号的文件的路径

    LINE    Int    符号出现处的行号

    COLUMN    Int    符号出现处的列

    FUNCTION    String    包含这个符号的方法名字

    因此,我们可以通过使用这些符号来写一个好一些的 Log 输出方法:

     

    func printLog<T>(message: T,

                     file: String = __FILE__,

                     method: String = __FUNCTION__,

                     line: Int = __LINE__)

    {

        print("\((file as NSString).lastPathComponent)[\(line)], \(method): \(message)")

    }

     

    ==================debug调试

     

    参考:https://www.jianshu.com/p/55ce421e47e9

    ==============NSNumber的格式化===============

    http://www.hangge.com/blog/cache/detail_2086.html

     

     

    展开全文
  • 同OC一样,swift也是依靠重写description来改变打印的内容。只不过,OC的description是重写了方法,Swift是重写了属性。并且可以把这个属性重写的方法写到分类中。在之前Swift版本,是可以通过分类重写...

      一般的枚举,打印时候会显示枚举信息,但是一般的对象,打印的时候只会显示类名称和内存空间了。同OC一样,swift也是依靠重写description来改变打印的内容。只不过,OC的description是重写了方法,Swift是重写了属性。并且可以把这个属性重写的方法写到分类中。在之前Swift版本,是可以通过分类重写CustomStringConvertible协议和CustomDebugStringConvertible协议,修改description来实现。目前版本应该是NSObject自身就遵守了这两个协议,所以会提示重复定义的错误。但是并不影响description的使用。

      我们来创建一个Person类:

      

    import UIKit
    
    class Person: NSObject {
        
        var name : String?
        var age : Int = 18
        
    }
    
    extension Person{
        
        override var description: String {
            
           return "Person类对象的名字是:\(self.name),年龄是:\(self.age)"
            
        }
        
        
        
    }

      此时创建Person,赋值name和age,打印:

      

    import UIKit
    
    class ViewController: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
            
            let p = Person()
            p.name = "axx"
            p.age = 18
            print(p)
        }
    
    }

      结果:

      Person类对象的名字是:Optional("axx"),年龄是:18

     

    转载于:https://www.cnblogs.com/sgxx/p/6207513.html

    展开全文
  • iOS:Swift自定义print

    2017-06-16 15:54:41
    与OC中的自定义NSLog相似,先创建一个Swift File 将以下代码复制到新创建的文件中 func printLog(message: T, logError: Bool = false, file: String = #file, method: String = #function,

    与OC中的自定义NSLog相似,先创建一个Swift File


    将以下代码复制到新创建的文件中

    func printLog<T>(message: T,
                  logError: Bool = false,
                  file: String = #file,
                  method: String = #function,
                  line: Int = #line)
    {
        if logError {
            print("\((file as NSString).lastPathComponent)[\(line)], \(method): \(message)")
        } else {
            #if DEBUG
                print("\((file as NSString).lastPathComponent)[\(line)], \(method): \(message)")
            #endif
        }
    }
    然后在工程的Build Settings中将Other Swift Flags中的Debug值修改成$(inherited) -D DEBUG


    最后将所有的print替换成printLog,在打印的时候就会显示在多少行和在什么方法中调用

    在程序上架之后将Other Swift Flags中的DEBUG值删除所有的printLog就失效了,可以达到优化性能的目的

    展开全文
  • 大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.... 假设认为写的不好请多提意见,假设认为不错请多多支持点赞.... hopy ;) ...swift大多数情况下我们直接用默认的print...注意Swiftprint函数是一个全局函数,...

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
    假设认为写的不好请多提意见,假设认为不错请多多支持点赞.谢谢! hopy ;)


    swift大多数情况下我们直接用默认的print函数打印就能够了,只是有些情况可能要做写改动.

    比方我们想打印非换行信息怎么办?

    print默认会在每行输出后加一个换行符.

    注意Swift的print函数是一个全局函数,她完整的函数签名为:

    public func print(items: Any..., separator: String = default, terminator: String = default)

    假设我们想让其不换行输出,仅仅须要将最后一个參数赋值为空字符串就可以:

    for x in 0...10{
        print("\(x) ", terminator: "")
    }
    展开全文
  • 尽管print声明不会在设备的console里打印,但它们甚至在Release...你可以通过定义自己的全局级别的print方法来重写Swiftprint方法,并且使用@autoclosure修饰器推迟其参数求值,就像assert做的那样:func print(_ i

    尽管print声明不会在设备的console里打印,但它们甚至在Release版本和设备上也会执行,这些执行可能会带来一些耗费。

    特别的,它的参数仍然被模拟求值。如果你的print调用只有一个参数,这里有一个变通方法。你可以通过定义自己的全局级别的print方法来重写Swift的print方法,并且使用@autoclosure修饰器推迟其参数求值,就像assert做的那样:

    func print(_ item: @autoclosure () -> Any,
            separator: String = " ", terminator: String = "\n") {
                #if DEBUG
                Swift.print(item(), separator:separator, terminator: terminator)
                #endif
    }

    当你调用print(myExpensiveFunction())时,这个定制print方法被调用。这意味着在闭包中包裹的myExpensiveFunction()方法不会被立即求值。

    如果你只在Swift的Debug配置标志中定义了-DDEBUG,那么在Release配置下构建的app中,myExpensiveFunction()将永远不会被求值,因为item()不会被调用。

    展开全文
  • Swift print 小技巧

    2015-12-30 23:10:18
    Swift 中,最简单的输出方法就是使用 print,在我们关心的地方输出字符串和值。但是这并不够,试想一下当程序变得非常复杂的时候,我们可能会输出很多内容,而想在其中寻找到我们希望的输出其实并不容易。我们...
  • Swift 变量名 Swift print的基本用法
  • swift 打印对象地址

    2019-06-16 22:34:09
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • 主要区别:  1 NSLog会记录下时间而print没有。  2 NSLog是线程安全的而print没有... 根据上面的区别可以看出一般用print,因为print比较快,而且只在调试模式下起作用,在不考虑线程安全问题时print是较好选
  • 直接贴代码了,可以支持多参数,在别人基础上进行修改 public func Fprint(_ items: Any..., separator: String = " ", terminator: String = "\n", _ file:String = #file, ...
  • Swift 2.0中的print函数有4种重载形式:  print(_:)。输出变量或常量到控制台,并且换行。  print(_:_:)。输出变量或常量到指定类型的流中,并且换行。  print(_:appendNewline:)。输出变量或常量到控制台...
  • 1、先了解一下print 函数是一个全局函数,完整的函数签名为: public func print(_ items: Any..., separator: String = default, terminator: String = default) 2、print 打印不换行 for n in 1...5...
  • Swift中Debug和Release两种状态下print()函数调试切换 在编写项目的过程中,我们常常会打印信息到控制台,通过打印的信息来判断代码的流程或者正确性。但是这些信息仅仅在Debug的状态下需要,一旦版本发布之后,我们...
  • swift变量输入使用print

    2016-09-18 13:42:12
    变量和常量可以使用 printswift 2 将 print 替换了 println) 函数来输出。 在字符串中可以使用括号" () "与反斜线" \ "来插入变量,即" \(变量名称) "   变量输出有两种格式 1、直接使用变量...
  • Swift print

    2016-05-19 21:00:22
    swift 中的输出函数是 print() , 默认是换行的,如过不想换行,则需要加 terminator : var m1 = 100 print(m1 , terminator: " " )
  • Swift—文本输出流

    2019-06-21 12:04:05
    printSwift标准库中最常用的函数之一。实际上,这是程序员在编写“Hello,world!”时学习的第一个函数。令人惊讶的是,我们很少有人熟悉其他形式。 例如,您是否知道实际的签名printprint(_:separator:...
  • swift print Double

    2017-10-30 21:51:14
    example: func getGasPrices()->(Double, Double, Double){  return (4.54,34.35,45.65) } print(getGasPrices()) result: (4.54, 34.350000000000001, 45....这是说用Print函数打印
1 2 3 4 5 ... 20
收藏数 24,781
精华内容 9,912
关键字:

print swift