多壮志,敢教日月换新天。为有牺牲

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

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

目录:[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 }
复制代码

 

posted @   为敢技术  阅读(228)  评论(0编辑  收藏  举报
编辑推荐:
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
阅读排行:
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析
点击右上角即可分享
微信分享提示