WoodBear009
码龄13年
求更新 关注
提问 私信
  • 博客:99,635
    99,635
    总访问量
  • 24
    原创
  • 19
    粉丝
  • 2
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
加入CSDN时间: 2012-08-30
博客简介:

WoodBear的博客

查看详细资料
个人成就
  • 获得20次点赞
  • 内容获得15次评论
  • 获得16次收藏
  • 博客总排名2,107,264名
创作历程
  • 1篇
    2019年
  • 13篇
    2017年
  • 10篇
    2016年
成就勋章
TA的专栏
  • ObjC
    14篇
  • Swift
    6篇
  • 其它
    3篇
  • iOS
    17篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

创作活动更多

王者杯·14天创作挑战营·第2期

这是一个以写作博客为目的的创作活动,旨在鼓励码龄大于4年的博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。 注: 1、参赛者可以进入活动群进行交流、分享创作心得,互相鼓励与支持(开卷),答疑及活动群请见https://bbs.csdn.net/topics/619735097 2、文章质量分查询:https://www.csdn.net/qc 我们诚挚邀请你们参加为期14天的创作挑战赛!

66人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

jenkins用户使用手册

发布资源 2019.04.08 ·
zip

Xcode调试之View Memory(查看内存)

  借着最近在工作中遇到的一个问题,简单来讲讲如何使用xcode的view memory功能来查看数据,排查问题。问题描述:  和服务器进行socket通信,但客户端这边发现服务器发过来的一个信令在反解、结构化后,有一个字段的数值和约定的对应不上,双方都先排查了一下各自代码,都没有发现明显的问题,导致现在无法定位问题引入的源头。于是决定客户端这边拿到反解、结构化之前,服务器发过来的原始数据...
原创
发布博客 2019.01.25 ·
25903 阅读 ·
7 点赞 ·
2 评论 ·
6 收藏

Swift柯里化

Curry  今天同事推荐了一个swift柯里化相关的库,点击打开链接,打开看了看具体实现,瞬间不明觉厉,于是想好好研究研究他是怎么写的,顺便加强一下对柯里化的理解public func curry(_ function: @escaping (A) -> B) -> (A) -> B { return { (a: A) -> B in function(a) }}pub
原创
发布博客 2017.09.27 ·
832 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

swift3 模型转字典(JSON)

项目中最近需要将一个复杂的对象转成JSON,于是就利用Mirror写了一个模型转字典的通用方法,应该可以满足大部分使用场景下的需求了函数实现:func convertToDictNesting(obj: Any, remainFeild: [String]? = nil, replace: (((label: String, value: Any)) -> (String, Any))
原创
发布博客 2017.08.10 ·
1898 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

闭包与block-捕获变量差异

起初在学习使用swift时,对闭包的变量捕获部分并没有认真的去了解,想当然的认为应给和OC中的block捕获规则一样,结果最近在使用中产生了错误,回过头来再去了解时,发现了二者的捕获规则有着很大的差异,这里只说现象,提醒大家在使用中多加注意,至于原因,有兴趣的可以分别去具体了解一下闭包与block的变量捕获机制.  先看OC代码 TestModel *test = [[TestMod
原创
发布博客 2017.05.31 ·
1003 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

《Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法》读书笔记(下)

1.为避免在不经意间使用了无效对象,一般在release之后会清空指针,=nil;2.通常利用弱引用或者“手动”解除引用的方式破坏循环引用。3.ARC下,规定以alloc、new、copy、mutabelCopy开头方法,调用者要负责返回对象的释放;反之,返回的对象会自动释放,调用者要注意对返回值的保留。4.属性设置的正确流程:保留新值,释放旧值,更新变量。5.ARC下deallo
原创
发布博客 2017.04.06 ·
639 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法》读书笔记(上)

1.OC对象所占内存总是分配在"堆"中,而绝不会分配在"栈"中,不能再栈中分配OC对象。"栈"中对象借助栈帧进行维护,"堆"中对象的管理借助引用计数机制.-(NSMutableArray *)test{ //ary指针本身在栈上,但分配的数组对象在堆上,这也就解释了,为什么函数返回后,ary会随着栈帧弹出而被释放, //但外部依然能使用NSMutableArray,因为NS
原创
发布博客 2017.04.05 ·
725 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

CFRunLoop源码分析笔记

之前看过不少别人博客里对CFRunLoop源码的分析,但自己一直没有去看过,今天回顾相关知识时,决定自己去看看相关的源码实现,确实又有了一些新的认识与收获.CFRunLoopRun、CFRunLoopRunInMode首先是两个简单的入口函数//两个函数分别是让runloop跑在kCFRunLoopDefaultMode下,与让runloop跑在指定mode下//两个函数区别不...
原创
发布博客 2017.03.12 ·
2851 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

socket编程[oc](逻辑数据的处理)

之前写了一下socket编程中半包、粘包的处理点击打开链接,这篇再写写另一个相关问题,逻辑数据的处理物理数据包与逻辑数据包:  首先说明的是,socket传输中物理数据包、逻辑数据包的概念是我自己臆想、“定义”的,主要是方便我后面去描述问题.那么什么是我所说的物理数据包与逻辑数据包呢?  举个例子,假如我想传送一段文本“这篇博客写的是socket编程[oc](逻辑数据的处理)”,可能因
原创
发布博客 2017.03.09 ·
3315 阅读 ·
2 点赞 ·
1 评论 ·
1 收藏

借鉴Alamofire解决异步回调问题(Swift)

遇到的问题  今天在做一个swift练习demo时遇到了这样一个问题,我需要实现一个gps定位功能,于是封装一个LocationManager类去处理定位相关的逻辑,外部调用者需要获取定位信息时,直接调用LocationManager提供的getCurrentGpsInfo方法即可获取到当前的gps信息。  getCurrentGpsInfo函数内部实现大概是这样的
原创
发布博客 2017.03.03 ·
7819 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

flatMap与Monad(Swift)

最近在看一些函数式编程方面的东西,有一个概念被反复的提及:Monad.为了弄明白这个词的含义,我看了不少的文章和视频,但是看了半天也基本是云里雾里的,似懂非懂的,感觉十分抽象。不过我注意到了一点,很多地方都提到:如果一个类型实现了flatmap,那它则具有Monad的性质。由此可见,flatmap似乎可以帮助我去理解Monad的概念,而正好,Swift中Array就支持flatmap,实践出真知,
原创
发布博客 2017.02.23 ·
936 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Swift3.0学习实践-一个简单的画板(七色轨迹、可撤销、可清除、带橡皮擦)

写着玩儿的小程序,继续学习swift,运行效果+代码+知识点总结运行效果:           代码:Canvas类:画布,画图板状态管理、交互、处理手势class Canvas:UIView{ //负责线条的生成、操作与管理 let pathCreator:PathCreator //是否处于擦除状态 var isInErasering:B
原创
发布博客 2017.02.09 ·
3924 阅读 ·
3 点赞 ·
4 评论 ·
4 收藏

iOS runtime forwardInvocation一些总结

代码:TestModel- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector { if(aSelector == @selector(testMethod)) { return [NSMethodSignature signatureWithObjCTypes:"v@:"];
原创
发布博客 2017.01.19 ·
4448 阅读 ·
2 点赞 ·
1 评论 ·
4 收藏

记iOS扩展(匿名类别)使用引发的崩溃

扩展(匿名类别)是在iOS开发中经常用到的技巧,一般通常的用法是这样:.h文件@interface JH_WebViewController : JHBaseViewController-(id)initWithUrl:(NSString *)url;@end.m文件#import "JH_WebViewController.h"@interface JH_WebV
原创
发布博客 2017.01.11 ·
3596 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

isa、class、meta-class白话总结

之前看过不少关于runtime的相关文章,其中对于isa、class、meta-class概念的描述都是比较抽象、晦涩的,虽然理解这些概念在实践中不一定能用的上,但既然学习了runtime,还是应该尽可能的把这些相关概念弄明白,下面,用我自己不太严谨的白话,粗略总结梳理一下我对这部分的理解与体会。对象与类,面向对象编程中最基本的概念,对象就是具体的实例,类则是一个抽象的概念。而在OC中类则不仅
原创
发布博客 2017.01.06 ·
2815 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

通过NSURLSessionConfiguration对类属性property(class)的思考

在查看NSURLSessionConfiguration的头文件时看到了如下的定义#if FOUNDATION_SWIFT_SDK_EPOCH_AT_LEAST(8)@property (class, readonly, strong) NSURLSessionConfiguration *defaultSessionConfiguration;@property (class, read
原创
发布博客 2016.12.13 ·
2793 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

ios _开头命名规范

在ios代码里,经常会看见用这种格式:_变量名 去命名一个变量,为什么? 其实又是个基础概念知识,但发现实际上好多人好像却并不明了其中原由,只是看好多人都这么写,也就这么写了,下面我就简单说一下这么做的原因。刚接触ios开发时,我写的代码一般是这样的@interface Person : NSObject@property (nonatomic,copy) NSString *
原创
发布博客 2016.12.06 ·
516 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

runtime应用一例

看到有人在论坛问:自己的应用已经开发完了,老板突然说想让应用中的button点击时要带震动效果。手机震动直接调用 AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);即可但是如果要把这句话一个一个的加到所有but的点击回调方法里,未免工作量太“大”了,而且也比较“笨”,我想了想,觉得利用runtime机制,可以比较好的解决这个问题
原创
发布博客 2016.12.05 ·
619 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Realm的一些特性介绍

之前做ios开发,数据存储这块基本上用的都是sqllite,15年下半年在做一个产品时,因为时间比较宽裕,便决定在项目中尝试使用realm数据存储框架。之前在做技术调研时,了解到了很多它的优点,速度快、类似core data的机制、文档详尽、简单易用等。而整个项目下来,也确实感觉到了realm的不负众望,优点很多:开发效率得到了大大提高(省去了数据模型与表存储之间转化的很多工作);框架虽然推出不久,但功能覆盖已经趋于完备了,基本都满足了我的需求;有一个十分好用的可视化数据库查看工具;最终的运行表现也很让人满
原创
发布博客 2016.12.02 ·
2048 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

NSTimer与RunLoop

今天在论坛里看见有人提出这样一个问题:界面上有个scrollView 每次滑动的时候,NSTimer就停止了,为什么?看了下,下面的回复不少,但我感觉都没有真正解释清其中的问题,下面我来试着写一下我个人的理解(我基本上都是通过下面这篇文章学习的,有兴趣更深入、详细了解runloop的同学可以看看点击打开链接)首先,一个runloop下会包含很多个model,每个
原创
发布博客 2016.12.01 ·
818 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多