- 实践-小效果 V
進无尽
1.搜索关键字高亮显示搜索关键字高亮显示Domeimage.png2.动态改变tableHeaderView的高度表头展开折叠.gifheadAllView.tapChangeFrame=^(void){[weakSelf.TbbeginUpdates];[weakSelf.TbsetTableHeaderView:weakHeadAllView];[weakSelf.TbendUpdates];
- RxSwift之内存管理
暮云_开发
通过前面的学习,到这里RxSwift也已经接近完结了,这里对于内存的问题,再次做一个总结,同时这里也有一个问题思考,那就是RxSwift有没有循环引用的问题?在Swift的闭包中我们经常会使用到[weakself]和[unownedself]来保证在闭包中使用self不会造成循环引用的问题,那在RxSwift中有没有相同的问题呢。在这个问题之前,先来了解一下weak和unowned的区别,weak
- Swift中weak与unowned的区别
雨后天_
在Swift的闭包中为了避免循环引用的问题,通常用[weakself]或者[unownedself],前者是self是可选型后者是非可选型,当self被释放后,如果执行self的方法会crash建议使用:推荐用法:Tools.getData("URL").completed{[weakself]resultinguardletstrongself=selfelse{return}self.setV
- Block的安全用法
蝴蝶之梦天使
块块块block用的越来越多block被滥用block被乱用安全用法现在总结一个安全可靠的使用方法:__weaktypeof(self)weakSelf=self;void(^myBlock)(void)=^{__strongtypeof(weakSelf)strongSelf=weakSelf;//Dosomething};是的,就是这个模式:在block外定义一个weakself.在block
- weakSelf 写法(OC+Swift)
iOS_我更专业
经常用Block传值,所以我们经常反复为了防止循环引用而去这样写:OC:宏定义:#defineWEAKSELF(weakSelf)__weak__typeof(&*self)weakSelf=self;使用时:直接在要在使用地方掉用:WEAKSELF(weakSelf);在Block闭包里直接用weakSelf即是若引用;那Swift有没有这样的写法呢?笔者暂时还未发现,那Swift怎样子这样写呢
- iOS 用editActionsForRowAtIndexPath:删除cell时候回出现崩溃
管乐_VICTOR
先上代码//删除cell操作-(NSArray*)tableView:(UITableView*)tableVieweditActionsForRowAtIndexPath:(NSIndexPath*)indexPath{__weaktypeof(self)weakSelf=self;UITableViewRowAction*delete=[UITableViewRowActionrowActio
- [译]Swift中的weak self和unowned self
李白的苹果
在找关于weak和unowned方面的知识,看到的一篇文章。原文来自WeakselfandunownedselfexplainedinSwift对于我们大多数人来说,Swift中的weakself和unownedself是很难理解的。尽管自动引用计数(ARC)已经为我们解决了很多问题,但是我们还是需要处理引用当我们不使用值类型的时候。在大多数情况下,使用可选类型的时候会默认添加weak,但其实并不
- IOS中对UILabel设置行间距或者字间距,根据内容计算高度
幽玄727
////设置label的行间距NSMutableAttributedString*attributedString=[[NSMutableAttributedStringalloc]initWithString:weakSelf.fj_footerLable.text];NSMutableParagraphStyle*paragraphStyle=[[NSMutableParagraphStyle
- Block - 循环引用
lionsom_lin
参考文档注:建议阅读《循环引用的场景&处理》问题[※※※]:使用系统的某些blockapi(如UIView的block版本写动画时),是否也考虑引用循环问题?情况分析情况一:block是控制器的属性,如果block内部没有使用weakSelf将会造成内存泄露self.testBlock=^(){NSLog(@"%@",self.mapView);};self.testBlock();情况二:把bl
- FFmpeg - 播放YUV,视频帧格式转换
lieon
播放YUV定时读取YUV的视频帧-(void)play{//NSTimeIntervalinterval=1.0/_yuv.fps*1.0;__weaktypeof(self)weakSelf=self;self.timer=[NSTimertimerWithTimeInterval:intervalrepeats:trueblock:^(NSTimer*_Nonnulltimer){[weakS
- iOS 解决自定义导航栏不能侧滑返回
小白e7899
iOS中,导航栏默认是可以侧滑,但是自定义导航之后,侧滑返回失效。解决办法:在自定义导航栏中增加侧滑手势判断,代码如下:-(void)viewDidLoad{[superviewDidLoad];//重置侧滑手势的代理__weaktypeof(self)weakSelf=self;if([selfrespondsToSelector:@selector(interactivePopGestureR
- iOS 屏幕锁定后检测屏幕方向
小涂涂哦
涉及框架:CoreMotion.framework涉及类:CMMotionManager例子:-(void)addCmmotionManager{__weaktypeof(self)weakSelf=self;if([self.cmmotionManagerisDeviceMotionAvailable]){[self.cmmotionManagerstartAccelerometerUpdate
- 内存管理:CADisplayLink、NSTimer使用注意
东方诗空
CADisplayLink、NSTimer使用注意CADisplayLink、NSTimer会对target产生强引用,如果target又对它们产生强引用,那么就会引发循环引用解决方案使用block__weaktypeof(self)weakSelf=self;self.timer=[NSTimerscheduledTimerWithTimeInterval:1.0repeats:YESblock
- iOS键盘高度适应
霸哥终结者
背景部分视图存在随键盘高度变化而自适应位置。所以需要监听键盘的高度变化。这里做个结合RxSwift做个简单封装。使用参考///底部栏键盘高度自适应KeyboardHelper.shared.keyboardHeight.bind{[weakself]heightinguardletself=selfelse{return}self.bottomView.snp.updateConstraints{
- OC底层原理三十:block详解
markhetao
OC底层原理学习大纲本节将深入探索block的底层原理。循环引用&解决方案block结构分析源码探索block的参数处理(多次拷贝)1.循环引用&解决方案正常释放:image.png循环引用:image.png解决循环引用的方法:weakSelf弱引用self,搭配strongSelf使用__block修饰对象(必须在block中置空对象,且block必须被调用)传对象self作参数,提供给代码块
- 【Swift】block防止self循环引用
FineFan
方法1、weakvarweakSelf=selfself.block={()->()inifletstrongSelf=weakSelf{//使用self}}方法2、self.block={[weakself]()->()in//使用self?}
- 内存问题原因统计
山已几孑
刚刚使用了MLeaksFinder,一个内存检测的第三方,顺便查了查项目中漏掉的地方,太过分的编译都过不去,剩下的都是不会导致严重问题的closoure中调用self的时候,没有使用[unownedself]、[weakself]的地方(异步的地方推荐使用weak)自定义的代理,使用时没有定位为weak类型,(weak类型代理需要声明代理时遵守“:class”)UITextField在iOS11上
- DownloadingImages 下载缓存图片,显示图片文字列表
Hanyang Li
SwiftUIContinuedLearningiOSSwiftUI
1.用到的技术点:1)Codable:可编/解码JSON数据2)backgroundthreads:后台线程3)weakself:弱引用4)Combine:取消器/组合操作5)PublishersandSubscribers:发布者与订阅者6)FileManager:文件管理器7)NSCache:缓存2.网址:2.1测试接口网址:jsonplaceholderhttps://jsonplaceho
- swiftrx 操作符
纱云
flapmap操作符将源Observable的每一个元素应用一个转换方法,将他们转换成Observables。然后将这些Observables的元素合并之后再发送出来。funcflapmap(){letresult=text_field.rx.text.orEmpty.flatMap{[weakself](text)->Observableinreturn(self?.requestMessage
- iOS侧滑卡住问题
王家小雷
1.在你的UINavigationController里面.mimport"CBNavigationController.h"@implementationCBNavigationController(void)viewDidLoad{__weakCBNavigationController*weakSelf=self;if([selfrespondsToSelector:@selector(in
- iOS开发之约束特殊用法
心比薄荷凉丶
我们首先来看一张图需求:昵称和时间是两个label,添加约束的时候不能限制宽度时间label必须全部展示,不能省略,两个label长度大于剩余空间的时候要省略昵称(昵称不限制长度)第一步:添加相关约束//名字[self.name_labelmas_makeConstraints:^(MASConstraintMaker*make{make.centerY.equalTo(weakSelf.name
- ios block的全方位解刨(block用什么修饰,block的循环引用,weakSelf 需要配合 strongSelf 使用,操作Block外部的变量)
Z苗
#底层原理blcok用什么修饰修饰block循环引用block如何使用block操作外部变量
Block的简介Block的官方定义是这样的:Block块是封装工作单元的对象,是可以在任何时间执行的代码段,其本质是可移植的匿名函数,可以作为方法和函数的参数传入,可以从方法和函数中返回。在iOS4以后,越来越多的系统级的API在使用Block。苹果对于Block的使用主要集中在如下几个方面:-完成处理–CompletionHandlers-通知处理–NotificationHandlers-错
- iOS block的循环引用
ream_1489
__weaktypeof(self)weakSelf=self;self.blk=^{__strongtypeof(self)strongSelf=weakSelf;NSLog(@"UseProperty:%@",strongSelf.name);//……};self.blk();改为传参self.blk=^(UIViewController*vc){NSLog(@"UseProperty:%@"
- NSTimer循环引用,为什么target传weakSelf没用?
脸狐
因为给NSTimer传weakSelf,内部是类似于@property(strong,nonatomic)idtarget;而不是block。网上的说法是:而NSTimer引用的是weakSelf指向的值,我觉得不是很恰当。个人理解是:block底层会转化成Person*__weakweakPerson;会把弱指针拷贝过去并弱引用,内部的引用修饰符是根据外部__weak修饰符而改变的。而NSTim
- Swift版本
Hurricane_4283
1、判断是否登录ifLCApplication.default.currentUser!=nil{///已登录}else{///未登录}2、退出登录LCUser.logOut()3、登录方法LCUser.logIn(mobilePhoneNumber:phone!,password:code){[weakself]resultinswitchresult{case.success(object:l
- NSTimer
fleshMe
造成内存泄漏&循环引用的原因self->timer->selfrunloop->timer->self解决NSTimer循环引用//方式一__weak__typeof(self)weakSelf=self;_blockTimer=[NSTimerscheduledTimerWithTimeInterval:1.0repeats:YESblock:^(NSTimer*_Nonnulltimer){_
- ZFPlayer iOS16 系统横屏全屏问题处理
追夢秋陽
IOS移动开发iOS16ZFPlayer全屏横屏
iOS16以后通过原始横屏的方法已经不好使了,需要在此基础上添加setNeedsUpdateOfSupportedInterfaceOrientations方法的调用,具体API描述如下:回到主题,在使用ZFPlayer视频库全屏播放时iOS16系统下的处理参考如下://进入全屏播放事件self.player.orientationWillChange={[weakself](player,isF
- Swift 避免循环引用
轻轻语焉
1、blockself.dataBack={[weakself](result)inself?.dataArr=resultas![String]}block通过[weakself]将self的强引用改为弱引用2、delegate一般声明delegate属性的时候,用weak修饰。tableView的delegate实现也是如此weakopenvardelegate:UITableViewDele
- for循环报错 (was mutated while being enumerated.')
快闪开
***Terminatingappduetouncaughtexception'NSGenericException',reason:'***Collectionwasmutatedwhilebeingenumerated.'for(UseModel*minweakSelf.clearItemArray){if(m.parentID==model.parentID){[weakSelf.clear
- iOS开发之约束特殊用法
chasitu
我们首先来看一张图需求:昵称和时间是两个label,添加约束的时候不能限制宽度时间label必须全部展示,不能省略,两个label长度大于剩余空间的时候要省略昵称(昵称不限制长度)解决:第一步:添加相关约束//名字[self.name_labelmas_makeConstraints:^(MASConstraintMaker*make){make.centerY.equalTo(weakSelf.
- [星球大战]阿纳金的背叛
comsci
本来杰迪圣殿的长老是不同意让阿纳金接受训练的.........
但是由于政治原因,长老会妥协了...这给邪恶的力量带来了机会
所以......现代的地球联邦接受了这个教训...绝对不让某些年轻人进入学院
- 看懂它,你就可以任性的玩耍了!
aijuans
JavaScript
javascript作为前端开发的标配技能,如果不掌握好它的三大特点:1.原型 2.作用域 3. 闭包 ,又怎么可以说你学好了这门语言呢?如果标配的技能都没有撑握好,怎么可以任性的玩耍呢?怎么验证自己学好了以上三个基本点呢,我找到一段不错的代码,稍加改动,如果能够读懂它,那么你就可以任性了。
function jClass(b
- Java常用工具包 Jodd
Kai_Ge
javajodd
Jodd 是一个开源的 Java 工具集, 包含一些实用的工具类和小型框架。简单,却很强大! 写道 Jodd = Tools + IoC + MVC + DB + AOP + TX + JSON + HTML < 1.5 Mb
Jodd 被分成众多模块,按需选择,其中
工具类模块有:
jodd-core &nb
- SpringMvc下载
120153216
springMVC
@RequestMapping(value = WebUrlConstant.DOWNLOAD)
public void download(HttpServletRequest request,HttpServletResponse response,String fileName) {
OutputStream os = null;
InputStream is = null;
- Python 标准异常总结
2002wmj
python
Python标准异常总结
AssertionError 断言语句(assert)失败 AttributeError 尝试访问未知的对象属性 EOFError 用户输入文件末尾标志EOF(Ctrl+d) FloatingPointError 浮点计算错误 GeneratorExit generator.close()方法被调用的时候 ImportError 导入模块失
- SQL函数返回临时表结构的数据用于查询
357029540
SQL Server
这两天在做一个查询的SQL,这个SQL的一个条件是通过游标实现另外两张表查询出一个多条数据,这些数据都是INT类型,然后用IN条件进行查询,并且查询这两张表需要通过外部传入参数才能查询出所需数据,于是想到了用SQL函数返回值,并且也这样做了,由于是返回多条数据,所以把查询出来的INT类型值都拼接为了字符串,这时就遇到问题了,在查询SQL中因为条件是INT值,SQL函数的CAST和CONVERST都
- java 时间格式化 | 比较大小| 时区 个人笔记
7454103
javaeclipsetomcatcMyEclipse
个人总结! 不当之处多多包含!
引用 1.0 如何设置 tomcat 的时区:
位置:(catalina.bat---JAVA_OPTS 下面加上)
set JAVA_OPT
- 时间获取Clander的用法
adminjun
Clander时间
/**
* 得到几天前的时间
* @param d
* @param day
* @return
*/
public static Date getDateBefore(Date d,int day){
Calend
- JVM初探与设置
aijuans
java
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台
- SQL中ON和WHERE的区别
avords
SQL中ON和WHERE的区别
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 www.2cto.com 在使用left jion时,on和where条件的区别如下: 1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
- 说说自信
houxinyou
工作生活
自信的来源分为两种,一种是源于实力,一种源于头脑.实力是一个综合的评定,有自身的能力,能利用的资源等.比如我想去月亮上,要身体素质过硬,还要有飞船等等一系列的东西.这些都属于实力的一部分.而头脑不同,只要你头脑够简单就可以了!同样要上月亮上,你想,我一跳,1米,我多跳几下,跳个几年,应该就到了!什么?你说我会往下掉?你笨呀你!找个东西踩一下不就行了吗?
无论工作还
- WEBLOGIC事务超时设置
bijian1013
weblogicjta事务超时
系统中统计数据,由于调用统计过程,执行时间超过了weblogic设置的时间,提示如下错误:
统计数据出错!
原因:The transaction is no longer active - status: 'Rolling Back. [Reason=weblogic.transaction.internal
- 两年已过去,再看该如何快速融入新团队
bingyingao
java互联网融入架构新团队
偶得的空闲,翻到了两年前的帖子
该如何快速融入一个新团队,有所感触,就记下来,为下一个两年后的今天做参考。
时隔两年半之后的今天,再来看当初的这个博客,别有一番滋味。而我已经于今年三月份离开了当初所在的团队,加入另外的一个项目组,2011年的这篇博客之后的时光,我很好的融入了那个团队,而直到现在和同事们关系都特别好。大家在短短一年半的时间离一起经历了一
- 【Spark七十七】Spark分析Nginx和Apache的access.log
bit1129
apache
Spark分析Nginx和Apache的access.log,第一个问题是要对Nginx和Apache的access.log文件进行按行解析,按行解析就的方法是正则表达式:
Nginx的access.log解析正则表达式
val PATTERN = """([^ ]*) ([^ ]*) ([^ ]*) (\\[.*\\]) (\&q
- Erlang patch
bookjovi
erlang
Totally five patchs committed to erlang otp, just small patchs.
IMO, erlang really is a interesting programming language, I really like its concurrency feature.
but the functional programming style
- log4j日志路径中加入日期
bro_feng
javalog4j
要用log4j使用记录日志,日志路径有每日的日期,文件大小5M新增文件。
实现方式
log4j:
<appender name="serviceLog"
class="org.apache.log4j.RollingFileAppender">
<param name="Encoding" v
- 读《研磨设计模式》-代码笔记-桥接模式
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/**
* 个人觉得关于桥接模式的例子,蜡笔和毛笔这个例子是最贴切的:http://www.cnblogs.com/zhenyulu/articles/67016.html
* 笔和颜色是可分离的,蜡笔把两者耦合在一起了:一支蜡笔只有一种
- windows7下SVN和Eclipse插件安装
chenyu19891124
eclipse插件
今天花了一天时间弄SVN和Eclipse插件的安装,今天弄好了。svn插件和Eclipse整合有两种方式,一种是直接下载插件包,二种是通过Eclipse在线更新。由于之前Eclipse版本和svn插件版本有差别,始终是没装上。最后在网上找到了适合的版本。所用的环境系统:windows7JDK:1.7svn插件包版本:1.8.16Eclipse:3.7.2工具下载地址:Eclipse下在地址:htt
- [转帖]工作流引擎设计思路
comsci
设计模式工作应用服务器workflow企业应用
作为国内的同行,我非常希望在流程设计方面和大家交流,刚发现篇好文(那么好的文章,现在才发现,可惜),关于流程设计的一些原理,个人觉得本文站得高,看得远,比俺的文章有深度,转载如下
=================================================================================
自开博以来不断有朋友来探讨工作流引擎该如何
- Linux 查看内存,CPU及硬盘大小的方法
daizj
linuxcpu内存硬盘大小
一、查看CPU信息的命令
[root@R4 ~]# cat /proc/cpuinfo |grep "model name" && cat /proc/cpuinfo |grep "physical id"
model name : Intel(R) Xeon(R) CPU X5450 @ 3.00GHz
model name :
- linux 踢出在线用户
dongwei_6688
linux
两个步骤:
1.用w命令找到要踢出的用户,比如下面:
[root@localhost ~]# w
18:16:55 up 39 days, 8:27, 3 users, load average: 0.03, 0.03, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
- 放手吧,就像不曾拥有过一样
dcj3sjt126com
内容提要:
静悠悠编著的《放手吧就像不曾拥有过一样》集结“全球华语世界最舒缓心灵”的精华故事,触碰生命最深层次的感动,献给全世界亿万读者。《放手吧就像不曾拥有过一样》的作者衷心地祝愿每一位读者都给自己一个重新出发的理由,将那些令你痛苦的、扛起的、背负的,一并都放下吧!把憔悴的面容换做一种清淡的微笑,把沉重的步伐调节成春天五线谱上的音符,让自己踏着轻快的节奏,在人生的海面上悠然漂荡,享受宁静与
- php二进制安全的含义
dcj3sjt126com
PHP
PHP里,有string的概念。
string里,每个字符的大小为byte(与PHP相比,Java的每个字符为Character,是UTF8字符,C语言的每个字符可以在编译时选择)。
byte里,有ASCII代码的字符,例如ABC,123,abc,也有一些特殊字符,例如回车,退格之类的。
特殊字符很多是不能显示的。或者说,他们的显示方式没有标准,例如编码65到哪儿都是字母A,编码97到哪儿都是字符
- Linux下禁用T440s,X240的一体化触摸板(touchpad)
gashero
linuxThinkPad触摸板
自打1月买了Thinkpad T440s就一直很火大,其中最让人恼火的莫过于触摸板。
Thinkpad的经典就包括用了小红点(TrackPoint)。但是小红点只能定位,还是需要鼠标的左右键的。但是自打T440s等开始启用了一体化触摸板,不再有实体的按键了。问题是要是好用也行。
实际使用中,触摸板一堆问题,比如定位有抖动,以及按键时会有飘逸。这就导致了单击经常就
- graph_dfs
hcx2013
Graph
package edu.xidian.graph;
class MyStack {
private final int SIZE = 20;
private int[] st;
private int top;
public MyStack() {
st = new int[SIZE];
top = -1;
}
public void push(i
- Spring4.1新特性——Spring核心部分及其他
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
- 配置HiveServer2的安全策略之自定义用户名密码验证
liyonghui160com
具体从网上看
http://doc.mapr.com/display/MapR/Using+HiveServer2#UsingHiveServer2-ConfiguringCustomAuthentication
LDAP Authentication using OpenLDAP
Setting
- 一位30多的程序员生涯经验总结
pda158
编程工作生活咨询
1.客户在接触到产品之后,才会真正明白自己的需求。
这是我在我的第一份工作上面学来的。只有当我们给客户展示产品的时候,他们才会意识到哪些是必须的。给出一个功能性原型设计远远比一张长长的文字表格要好。 2.只要有充足的时间,所有安全防御系统都将失败。
安全防御现如今是全世界都在关注的大课题、大挑战。我们必须时时刻刻积极完善它,因为黑客只要有一次成功,就可以彻底打败你。 3.
- 分布式web服务架构的演变
自由的奴隶
linuxWeb应用服务器互联网
最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时候已经是托管了一台主机,并且有一定的带宽了,这个时候由于网站具备了一定的特色,吸引了部分人访问,逐渐你发现系统的压力越来越高,响应速度越来越慢,而这个时候比较明显的是数据库和应用互相影响,应用出问题了,数据库也很容易出现问题,而数据库出问题的时候,应用也容易
- 初探Druid连接池之二——慢SQL日志记录
xingsan_zhang
日志连接池druid慢SQL
由于工作原因,这里先不说连接数据库部分的配置,后面会补上,直接进入慢SQL日志记录。
1.applicationContext.xml中增加如下配置:
<bean abstract="true" id="mysql_database" class="com.alibaba.druid.pool.DruidDataSourc