一、开线程在iOS开发过程中,经常会遇到在服务器端获取完数据通过后台使用多线程方式自动更新UI,通常的做法有两种:1、使用NSObject类的方法performSelectorInBackground:withObject:来创建一个线程。 具体的代码:[Object performSelectorInBackground:@selector(doSomething:) withObject:n
转载 2023-10-08 21:01:46
311阅读
1.为什么在开发中推荐使用 CocoaPods管理工具? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如MJExtension,AFNetWorking, MJRefresh等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类
转载 9月前
16阅读
# iOS performSelector 警告消除 在 iOS 开发中,`performSelector` 方法为我们提供了一种动态调用方法的能力。然而,使用 `performSelector` 时可能会遭遇一些警告,特别是与选择器类型不匹配或方法参数不匹配有关。本文将讨论如何消除这些警告,并提供相应的代码示例。 与此同时,这篇文章还将包含类图及表格,以帮助您更好地理解相关概念。 ## 什
原创 10月前
119阅读
近期在重构老项目时发现有些地方用了AutoResetEvent,于是查了些资料学习整理。线程同步介绍即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作, 其他线程才能对该内存地址进行操作,而其他线程又处于等待状态,实现线程同步的方法有很多,临界区对象就是其中一种。同步就是协同步调,按预定的先后次序进行运行。如:你说完,我再说。“同”字从字面上容易理解为一起
转载 10月前
41阅读
一、        VC++中Format函数详解首先看它的声明:function Format(const Format: string; const Args: array of const): string; overload; 事实上Format方法有两个种形式,另外一种是三个参数的,主要区别在于它是线程安全的,  但并
转载 9月前
21阅读
代码:
转载 2017-06-08 09:15:00
135阅读
2评论
一. iOS代码块Block1.1 概述代码块Block是苹果在iOS4开始引入的对C语言的扩展,用来实现匿名函数的特性,Block是一种特殊的数据类型,其可以正常定义变量、作为参数、作为返回值,特殊地,Block还可以保存一段代码,在需要的时候调用,目前Block已经广泛应用于iOS开发中,常用于GCD、动画、排序及各类回调注: Block的声明与赋值只是保存了一段代码段,必须调用才能执行内部代
转载 1月前
370阅读
下面两段代码都在主线程中运行,我们在看别人代码时会发现有时会直接调用,有时会利用performSelector调用,今天看到有人在问这个问题,我便做一下总结,[delegate imageDownloader:self didFinishWithImage:image]; [delegate performSelector:@selector(imageDownloader:didFinish
转载 2023-07-19 22:18:51
9阅读
## iOS开发中performSelector为什么不触发的解析 ### 概述 在iOS开发中,我们经常会使用`performSelector`方法来实现动态调用方法。然而,有时候会遇到调用`performSelector`方法却无法触发相应的方法的情况。本文将详细解析为什么会出现这种情况,并给出解决方案。 ### 步骤分析 下面是整个过程的步骤,用表格形式展示: | 步骤 | 描述
原创 2023-12-01 05:25:58
172阅读
方法一:传参按钮控件自身绑定的ItemSource用WAF框架实现MVVM,按钮的点击事件都要通过Command来传递到这个View对应的ViewModel上,再通过ViewModel传递到上层的Controller层,在Controller层通过DelegateCommand处理按钮真正的事件。有时候需要给该Command附加上一些参数(CommandParameter),但是默认Command
转载 2023-07-24 15:17:45
96阅读
performSelector具体的创建方式有10种,根据执行方式分为了五大类。//1️⃣三种 这三种跟直接调用方法没有区别,同步执行任务,阻塞当前线程。执行完sel再继续执行原来任务 [self performSelector:sel]; [self performSelector:sel withObject:nil]; [self performSelector:sel withObject
转载 2023-11-11 07:39:48
146阅读
在内存管理方面容易有缺失。无法确定将要执行的选择子具体是什么,所以 ARC 无法插入适当的内存管理方法选择子的返回类型只能是 id,最多有两个参数。所以尽量避免使用这个东西。 下面来自苹果的文档Different messages require different memory management strategies for their returned objects, and it m...
原创 2021-05-30 21:32:03
483阅读
网上有讨论NSInvocation的用法,说某些情况下performSelector不是很方便:“在 iOS中可以直接调用 某个对象的消息 方式有2种一种是performSelector:withObject:再一种就是NSInvocation第一种方式比较简单,能完成简单的调用。但是对于>2...
原创 2021-08-13 14:54:27
141阅读
performSelector和直接调用方法的区别
转载 2023-05-22 11:13:48
104阅读
某个对象的消息 方式有2种第一种方式是使用NSObject类提供的performSelector系列方法还有一种方式就是使用NSInvocation进行动态运行时的消息分发,动态的执行方法,相信大家一定经常
转载 2023-05-23 07:53:03
105阅读
下面两段代码都在主线程中运行,我们在看别人代码时会发现有时会直接调用,有时会利用performSelector调用,今天看到有人在问这个问题,我便做一下总结,[delegateimageDownloader:selfdidFinishWithImage:image];[delegateperform...
转载 2014-02-27 11:42:00
149阅读
2评论
1. dispatch_async(dispatch_get_global_queue(0, 0), ^{ [self performSelector:@selector(asdf) withObject:nil afterDelay:1]; [[NSRunLoop currentRunLoop]
转载 2020-04-17 17:49:00
185阅读
2评论
​第一种解决办法: As a workaround until the compiler allows overriding the warning, you can use the runtimeobjc_msgSend(_controller, NSSelectorFromString(@"someMethod")); instead of[_controller performSelecto
转载 2013-12-28 14:41:00
169阅读
2评论
URL:http://stackoverflow.com/questions/7017281/performselector-may-cause-a-leak-because-its-selector-is-unknownperformSelector may cause a leak because its selector is unknownSolutionThe compiler is w
转载 精选 2015-06-19 18:52:52
1160阅读
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay;--1--知识点:这个方法是单线程的,也就是说只有当前调用此方法的函数执行完毕后,selector方法才会被调用。- (void)mainMethod { [self performSele
转载 2013-07-03 16:09:00
62阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5