说到循环引用问题,想必大家都碰到过吧,比如在使用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
如何给button增加下划线简单版   - (void)setUnderLineForButton:(UIButton *)btn withTitle:(NSString *)title{     //利用富文本的方式增加button下划线     NSMutableAttributedStrin
KVO的原理是什么?底层是如何实现的? 我们可以通过代码去探索一下。 创建自定义类:XGPerson @interface XGPerson : NSObject @property (nonatomic,assign) int age
 定义 KVC的全称是Key-Value Coding,俗称“键值编码”,可以通过一个key来访问某个属性   常见的API有: - (void)setValue:(id)value forKeyPath:(NSString *)keyPath;&

推荐文章