说到循环引用问题,想必大家都碰到过吧,比如在使用Block的时候,使用__weakSelf来代替self解决等,但是对于这个,还是有不少可以探索的点,下面我就来说下,希望对大家有所帮助。
是否所有的Block中,使用self都会导致循环引用?
答案是否定的!如下面所示的这种情况
如上,使用系统自带
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
//禁止所有输入法的表情
if ([self isCo
A-app:
Info--URL Types--URL Schemes:A-app(一个标识,允许别的app调用本App)
info.plist 添加白名单:
LSApplicationQueriesSchemes(Array)
B-app(String)
//使用
- (void)jumpTo
编译报错
当你开心得升级完新 macOS,以及新 XCode,准备体验了一把 Dark Mode 编程模式,开心的打开自己的老项目的时候,发现编译不通过了╮(╯_╰)╭
如果你的工程中如果依赖 libstdc++,无论是你本身的功能用 C++ 跨平台编写,还是你引入了某个 SDK 其内部依赖这个
RunLoop的字面意思是运行循环、跑圈,一个App启动后能一直执行,就是因为启动后进入了一个循环,在这个循环中不断监听各种状态、手势动作,并做出相应的响应。这个循环就是我们今天要探究的RunLoop。
1 RunLoop基础
1.1 RunLoop的基本作用
保持
前言
一般APP在按下Home键被挂起后,这时APP的 backgroundTimeRemaining 也就是后台运行时间大约只有3分钟,如果在退出APP后,过十几二十二分钟或者更长时间再回到APP,APP就会回到刚打开时的状态,也就是首页;有的项目在被挂起后需要在后台运行一段时间,使有足够的时间来
进程:
//系统中正在运行的一个应用程序。
//每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内
线程:
//1个进程想要执行任务,必须得有线程(每1个进程至少有1条线程)
//一个进程的所有任务都在线程中执行。
//线程的
思考:现在有多个线程异步执行,我们想要同时最多只能执行2个或n个,该怎么办?
dispatch_semaphore_t
看代码解析:
NSLog(@"开始");
dispatch_semaphore_t t = dispatch_semaphore_create(2);//设置信号
1. NSUserDefaults
//TODO: 1.NSUserDefaults NSUserDefaults类除了可以存储数组、字典、NSdata外,还可以直接存储OC基本类型属性。但是不能直接作用到自定义对象.
[[NSUserDefaults stand
参考文章:http://www.cocoachina.com/ios/20180831/24753.html
WK时苹果在iOS8.0之后推出的控件,相比于UIWebView:
内存消耗少;
解决了网页加载时的内存泄漏问题;
与HTML页面的交互更方便;
总之,其性能比UIWebView好很多。
可以在UIImage的分类中加入下面的代码,并且引入系统的ImageIO.framework
/**
根据图片的url获取尺寸
@param URL url
@return CGSize
*/
+ (CGSize)getImageSizeWithURL:(id)URL;
/**
*
iOS中限制输入框文字长度的方法有好多,百度一下,最常用的是这种:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString
1.如果你有mac系统那请看第二步。
首先需要一台虚拟机,还需要个插件要不没法装,都在这链接里面了
链接:https://pan.baidu.com/s/1N_pWJWFk-EJILTXuFr6w5g 提取码:d5ft
虚拟机安装完成后将插件解压
解压完成后点击win-install安装插
出现如标题提示的项目打不开情况,多半可能是因为Xcode版本不同,或者是SVN/Git使用导致
解决办法一:
删除冲突代码,"项目文件->Pod文件夹->Pods.xcodeproj",右键Pods.xcodeproj显示包含内容,找到project.pbxproj文件,打开找到冲突代
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~
本文由WeTest质量开放平台团队发表于云+社区专栏
作者:陈裕发, 腾讯系统测试工程师
商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。
原文链接:http://wetest.qq.com/lab/view/380.ht
问题描述:
Pod installation complete! There are 2 dependencies from the Podfile and 3 total pods installed.
xcode-select: error: tool 'xcodebuild' require
如何给button增加下划线简单版
- (void)setUnderLineForButton:(UIButton *)btn withTitle:(NSString *)title{
//利用富文本的方式增加button下划线
NSMutableAttributedStrin
KVO的原理是什么?底层是如何实现的?
我们可以通过代码去探索一下。
创建自定义类:XGPerson
@interface XGPerson : NSObject
@property (nonatomic,assign) int age
https://www.bilibili.com/video/av27255821/
定义
KVC的全称是Key-Value Coding,俗称“键值编码”,可以通过一个key来访问某个属性
常见的API有:
- (void)setValue:(id)value forKeyPath:(NSString *)keyPath;&