zoukankan      html  css  js  c++  java
  • [Xcode 实际操作]八、网络与多线程-(18)PerformSelector消息处理方法:由运行时系统,负责去调用对象的指定方法

    目录:[Swift]Xcode实际操作

    本文将演示PerformSelector消息处理方法。

    在项目文件夹上点击鼠标右键弹出文件菜单。

    【New File】->【Swift File】->【Next】->【Save As】:iOSApp.swift->【Create】

    现在开始编写代码,创建Swift类【iOSApp.swift】

     1 import Foundation
     2 
     3 //创建一个继承自基础对象的类
     4 class IOSApp: NSObject{
     5     //给类添加一个无参方法,
     6     @objc func printInformation()
     7     {
     8         //在控制台打印输出日志
     9         print("Interactive Tutorials for Xcode")
    10     }
    11     //给类添加一个含参方法,
    12     @objc func buyApp(_ app:String)
    13     {
    14         //在控制台打印包含输入参数的日志
    15         print("Buy the app:(app)")
    16     }
    17 }

    在项目导航区,打开视图控制器的代码文件【ViewController.swift】

     1 import UIKit
     2 
     3 class ViewController: UIViewController {
     4 
     5     override func viewDidLoad() {
     6         super.viewDidLoad()
     7         // Do any additional setup after loading the view, typically from a nib.
     8         
     9         //初始化上文创建的IOSApp类对象
    10         let app = IOSApp()
    11         //判断对象是否存在,以某个名称命名的方法
    12         if(app.responds(to: Selector(("printInformation"))))
    13         {
    14             //然后调用对象的指定方法,
    15             //这种方法的调用方式,是由运行时系统,负责去找对应的方法,
    16             //在编译时不做任何校验。
    17             app.perform(Selector(("printInformation")))
    18         }
    19 
    20         //判断对象是否存在,以某个名称命名的方法
    21         if(app.responds(to: Selector(("buyApp:"))))
    22         {
    23             //使用同样的方式,执行带有参数的方法,并传递相关的参数。
    24             app.perform(Selector(("buyApp:")), with: "Excel interactive tutorials")
    25             //在执行某个方法时,还可以增加延迟执行的功能。
    26             app.perform(Selector(("buyApp:")), with: "Photoshop tutorials", afterDelay: 2)
    27         }
    28     }
    29 
    30     override func didReceiveMemoryWarning() {
    31         super.didReceiveMemoryWarning()
    32         // Dispose of any resources that can be recreated.
    33     }
    34 }
  • 相关阅读:
    java中BigDecimal的四舍五入小记
    thinking in java学习笔记:14章 类型信息
    java中==和equals
    java中值传递和引用传递
    java中的赋值
    hessian学习笔记
    springboot学习笔记:12.解决springboot打成可执行jar在linux上启动慢的问题
    要是满足下面的其中3种情况,你就跑路吧
    vim程序编辑器---常用操作整理
    报错end Kernel panic
  • 原文地址:https://www.cnblogs.com/strengthen/p/10068977.html
Copyright © 2011-2022 走看看