iOS开发
三丹不是彤
这个作者很懒,什么都没留下…
展开
-
NSMutableParagraphStyle
一、设置UILabel的属性attributedText(NSMutableAttributedString)NSString *testStr = @"测试";UILabel *testLab = ...(实例对象)NSMutableParagraphStyle *ps = [[NSMutableParagraphStyle alloc] init]; [ps setAli转载 2015-12-15 16:07:01 · 661 阅读 · 0 评论 -
用OCLint给iOS代码做静态分析
用OCLint给iOS代码做静态分析可以对iOS代码做代码静态分析的工具有OCLint, 这篇帖子说的就是如何使用这个工具. 转载请注明出处,晓月的博客:(http://blog.csdn.net/uxyheaven/article/details/50818107)什么是OCLint最好的介绍当然首选官方文档, 以下的说明摘选自官方文档:OCLint是一个代码静态分析转载 2016-04-18 18:08:22 · 761 阅读 · 0 评论 -
iOS 获取手机型号,系统版本
1.手机系统:iPhone OSNSString* phoneVersion = [[UIDevice currentDevice] systemVersion];2.手机类型:iPhone 6NSString* phoneModel = [Function iphoneType];3.手机系统版本:9.1NSString * iponeM = [[UIDevice转载 2016-04-14 18:37:45 · 394 阅读 · 0 评论 -
Objective-C Runtime 运行时:Method Swizzling
原文出处: 南峰子的技术博客 理解Method Swizzling是学习runtime机制的一个很好的机会。在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swizzling一文。Method Swizzling是改变一个selector的实际实现的技术。通过这一技术,我们可以在运行时通过修改类的分发表中selector对应的函数,来转载 2016-04-08 11:14:44 · 342 阅读 · 0 评论 -
objective C中的@class, SEL , IMP等灵活机制
holydancer原创,如需转载,请在显要位置注明:转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/7347399在objective c中,如果细心的话会发现,每个类中都会自动生成一个class 类型的isa,[plain] view plain c转载 2016-04-08 10:33:09 · 241 阅读 · 0 评论 -
iOS 玩转推送通知
前言推送通知,想必大家都很熟悉,关于原理之类的,这里就不过多阐述。在这里我们主要介绍下iOS8及iOS9之后关于推送的新功能。大家可能见过听说过,但可能有一些朋友并没有上手做过。这篇文章便给大家详细介绍推送中的快捷按钮及快捷回复等功能的实现。快捷点赞,如微博点赞功能效果图大家可以先看下:首先先说如何为自己的推送添加快捷功能,该Demo中的动作 “赞”,代码如转载 2016-03-16 14:12:12 · 315 阅读 · 0 评论 -
KVC/KVO原理详解及编程指南
KVC/KVO原理详解及编程指南作者: wangzz原文地址: http://blog.csdn.net/wzzvictory/article/details/9674431转载请注明出处前言:1、本文基本不讲KVC/KVO的用法,只结合网上的资料说说对这种技术的理解。2、由于 KVO内容较少,而且是以 KVC为基础实现的,本文将着重介绍KVC部分。转载 2016-03-14 18:15:30 · 307 阅读 · 0 评论 -
简述文本属性Attributes的用法
文本属性Attributes1.NSKernAttributeName: @10 调整字句 kerning 字句调整2.NSFontAttributeName : [UIFont systemFontOfSize:_fontSize] 设置字体3.NSForegroundColorAttributeName :[UIColor redColor] 设置文字颜色4.N转载 2016-03-10 19:30:49 · 532 阅读 · 0 评论 -
快速集成App中顶部标题滚动条
快速集成App中顶部标题滚动条 http://www.jianshu.com/p/b45655e23a42字数1069 阅读9443评论152 喜欢138Collection/Bookmark/Share for width under 768px前言目前越来越多的App都需要顶部标题切换界面效果,并且带有非常炫酷的效果,利用点时间给广大的攻城狮们提供了这样一个框架,集成转载 2016-03-07 13:06:33 · 524 阅读 · 0 评论 -
Github上的README.md文件这么有意思--Markdown语言详解
之前一直在使用github,也在上面分享了不少的项目和Demo,每次创建新项目的时候,使用的都是默认的README.md文件,也不曾对这个文件有过什么了解。但是在看到别人写的项目的README.md里面竟然有图片、链接什么的,就感到很好奇,这效果是什么加上去的?于是便查了一下资料,结果,竟迁出了一门从来没有了解过的语言— —Markdown!github上的README.md文件就是使用的转载 2016-04-18 18:36:01 · 449 阅读 · 0 评论 -
Markdown
Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用。看到这里请不要被「标记」、「语言」所迷惑,Markdown 的语法十分简单。常用的标记符号也不超过十个,这种相对于更为复杂的HTML 标记语言来说,Markdown 可谓是十分轻量的,学习成本也不需要太多,且一旦熟悉这种语法规则,会有一劳永逸的效果。一、认识 Markdown转载 2016-04-18 18:44:02 · 321 阅读 · 0 评论 -
MAC工具箱(设计/开发/效率)
作者:技匠(微信号:techmask)编者按:一个同时拥有开发/设计/高执行力技能的设计师会用哪些软件来帮自己提高工作效率?今天这篇软件推荐的文章作者是一个架构师,业余喜欢用自学的设计技能开发网站和App,一起来看看他的工具箱。我喜欢把自己定义为一个会一些设计的全栈工程师。在一些大型企业项目中,我一般担任架构师的角色,而到了我自己负责的个人或开源项目中,我就成了一名全栈设计师。我喜转载 2016-04-20 15:17:46 · 636 阅读 · 0 评论 -
关于userInteractionEnabled的属性的理解
12324转载 2015-12-15 13:42:38 · 278 阅读 · 0 评论 -
将像素绘制到屏幕上去
今天把WordPress搭建好了,想用Django搭建的,还是没能实现,把之前翻译的一篇文章拿出来校对了一下,欢迎评阅。##########我是正文########## 一个像素是怎样绘制到屏幕上去的?有多种方式将一些东西映射到显示屏上,他们需要调用不同的框架、许多功能和方法的结合体。这里我们走马观花的看一下屏幕之后发生的一些事情。当你想要弄清楚什么时候、怎么去查明并解决问题时,转载 2016-06-20 11:41:05 · 549 阅读 · 0 评论 -
走进Run Loop的世界 (二):如何配置Run Loop Sources
http://chun.tips/blog/2014/10/20/zou-jin-run-loopde-shi-jie-er-:ru-he-pei-zhi-run-loop-sources/上一章中给大家分享了Run Loop的基本概念,一些使用方法和注意事项。本章节将分享一下学习配置Run Loop sources的收获。Run Loop Source概念总结: Run Loop本质转载 2016-04-27 10:32:02 · 356 阅读 · 0 评论 -
走进Run Loop的世界 (一):什么是Run Loop?
http://chun.tips/blog/2014/10/20/zou-jin-run-loopde-shi-jie-%5B%3F%5D-:shi-yao-shi-run-loop%3F/在刚刚接触iOS开发的时候,我们在Xcode的帮助下生成了第一个工程。工程里会包含一个main.m的文件,默认的代码大致如下:int main(int argc, char * argv[]转载 2016-04-27 10:31:08 · 296 阅读 · 0 评论 -
iOS 中的 NSTimer
前阵子在整理公司项目的时候,发现老代码在使用 NSTimer 时出现了内存泄露。然后整理了一些NSTimer 的相关内容。比较简单,各位见笑啦。NSTimerfire我们先用 NSTimer 来做个简单的计时器,每隔5秒钟在控制台输出 Fire 。比较想当然的做法是这样的:@interface DetailViewController ()@property (nonato转载 2016-04-25 13:37:25 · 229 阅读 · 0 评论 -
使用WKWebView替换UIWebView
开发App的过程中,常常会遇到在App内部加载网页,通常用UIWebView加载。这个自iOS2开始使用的网页加载器一直是开发的心病:加载速度慢,占用内存多,优化困难。如果加载网页多,还可能因为过量占用内存而给系统kill掉。各种优化的方法效果也不那么明显(点击查看常用优化方法)。iOS8以后,苹果推出了新框架Wekkit,提供了替换UIWebView的组件WKWebView。各种UIWe转载 2016-04-25 10:32:20 · 320 阅读 · 0 评论 -
可复用且高度解耦的iOS用户统计实现
用户统计用户行为统计(User Behavior Statistics, UBS)一直是移动互联网产品中必不可少的环节,也俗称埋点。在保证移动端流量不会受较大影响的前提下,PM们总是希望埋点覆盖面越广越好。目前常规的做法是将埋点代码封装成工具类,但凡工程中需要埋点(如点击事件、页面跳转)的地方都插入埋点代码。一旦项目越来越复杂,你会发现埋点的代码散落在程序的各个角落,不利于维护以及复用。本转载 2016-04-22 13:42:16 · 573 阅读 · 2 评论 -
那些著名或非著名的iOS面试题(上)
作者:吴白(简书)1.如何追踪app崩溃率,如何解决线上闪退当iOS设备上的App应用闪退时,操作系统会生成一个crash日志,保存在设备上。crash日志上有很多有用的信息,比如每个正在执行线程的完整堆栈跟踪信息和内存映像,这样就能够通过解析这些信息进而定位crash发生时的代码逻辑,从而找到App闪退的原因。通常来说,crash产生来源于两种问题:违反iOS系统规则导致的cra转载 2016-04-21 14:28:08 · 441 阅读 · 0 评论 -
教你如何反编译app,拿到加密方式
大家知道app 有安卓和ios安卓是apk 现在基本上apk都是经过加密的 想动态脱壳没一定的技术是搞不定的IOS是ipa 今天我主要讲的是这个 准备好反编译设备1.一套越狱的ios手机 我的设备是iphone6 ios8.3 已越狱2.一个mac系统 可以是vmware上的mac 黑苹果 或者直接用自己的mac电脑 我为了方便就用了黑苹果(如何搞黑转载 2018-01-15 11:15:50 · 10369 阅读 · 0 评论 -
iOS 侧滑返回手势
前言(其实就是废话,可以忽略 = =)侧滑返回手势是从iOS7开始增加的一个返回操作,经历了两年时间估计iPhone用户大部分都已经忽略了屏幕左上角那个碍眼的按钮了。之前在网上搜过有关侧滑手势的技术博客,发现大多比较散乱,甚至有很多都是简单的粘贴复制,并不全面。在这里写这篇文章的目地,就是希望比较系统把侧滑手势的相关内容做下总结,也希望可以帮助到正在找相关资料的同学。(不知不觉iOS系统版本都已转载 2018-01-23 18:02:05 · 2570 阅读 · 0 评论 -
iOS 响应链和事件传递
首先要先学习下响应者对象UIResponder,只有继承UIResponder的的类,才能处理事件。NS_CLASS_AVAILABLE_IOS(2_0) @interface UIApplication : UIResponderNS_CLASS_AVAILABLE_IOS(2_0) @interface UIView : UIResponder <NSCoding, UIApp...转载 2018-10-22 14:08:54 · 262 阅读 · 0 评论 -
iOS触摸事件全家桶
好奇触摸事件是如何从屏幕转移到APP内的?困惑于Cell怎么突然不能点击了?纠结于如何实现这个奇葩响应需求?亦或是已经被响应链、手势、target-action这一系列响应触摸事件的方式折腾到不会打Hello World?现在 是时候带你上分了~ (强行YY完毕)本文主要讲解iOS触摸事件的一系列机制,涉及的问题大致包括:触摸事件由触屏生成后如何传递到当前应用? 应用接收触摸...转载 2018-10-22 17:57:27 · 168 阅读 · 0 评论 -
iOS 从零到一搭建组件化项目框架
随着公司业务需求的不断迭代发展,工程的代码量和业务逻辑也越来越多,原始的开发模式和架构已经无法满足我们的业务发展速度了,这时我们就需要将原始项目进行一次重构大手术了。这时我们应该很清晰这次手术的动刀口在哪,就是之前的高度耦合的业务组件和功能组件,手术的目的就是将这些耦合拆分成互相独立的各个组件。 组件化工程示例项目地址 组件化开源项目Git仓库地址 下面我们围绕这几个...转载 2018-10-25 10:33:56 · 281 阅读 · 0 评论 -
iOS基础:全局变量·静态变量·局部变量·自动变量(static、extern、全局静态区、堆区、栈区)
引言:包括百度、中兴在内的很多公司都曾在笔试面试中出过下面题目 问题:全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 解析:有区别。全局变量保存在内存的全局存储区中,占用静态的存储单元;局部变量保存在栈中,只有在所在函数被调用时才动态地为变量分配存储单元。 区分三种变量的特点,如果只看声明位置和访问范围,肯定不够深刻的,需要进一步理解在内存中的不同。所以,这里我...转载 2018-10-26 11:01:28 · 910 阅读 · 0 评论 -
浅谈iOS中Block的内存管理
一、前言: Block是Objective-C中的一项强大的特性,Block可以看作是OC中对于闭包函数的实现,实质上Block也是一个对象~ 二、内存分配区域:OC中的各个主要的内存分配区域:包括有--栈区、堆区、常量区、全局静态区、文本区(代码区) 内存分配区域栈区:存放函数参数值、局部变量、函数返回地址等,我们每次调用函数,都会执行压栈操作(在XCode的左侧...转载 2018-10-26 14:42:18 · 307 阅读 · 0 评论 -
DWebImage4.0源码探究(一
目录一、SDWebImage UML分析 二、SDWebImage 中 @autoreleasepool 的应用 三、SDWebImage 支持 GIF动图 吗? 四、SDWebImage 如何 区分图片格式? 五、SDWebImage 缓存图片的名称如何 避免重名? 六、SDWebImage 中 常量的定义 七、SDWebImage 如何保证UI操作放在主线程中执行? 八、SD...转载 2018-10-24 12:00:58 · 188 阅读 · 0 评论 -
太阳浏览器
太阳浏览器iPhone版使用全新内核,大幅提升浏览加载速度。首页采用极简的设计风格,精选快捷网址、极快的搜索特性、最省流量、简洁、舒适、高效的浏览体验,让您轻松一点直达最热门网站。- 安全放心:恶意网站拦截提醒,上网环境安全检测。- 速度提升:专项网页缓存技术,浏览速度不断提升。- 流量省心:wifi网络加速,上网快人一步,月底不怕流量告急。- 功能丰富:聚合全网精选内容,时事热...转载 2018-10-30 19:13:46 · 951 阅读 · 0 评论 -
iOS开发 MVVM+RAC 的使用
好长一段时间没有敲简书了!主要是因为一直在跑面试。终于还是在上海入职了!由于项目原因最终还是入了MVVM+RAC的坑下面是正题。Demo效果使用MVVM+RAC请求网络数据ReactiveCocoa简介在iOS开发过程中,当某些事件响应的时候,需要处理某些业务逻辑,这些事件都用不同的方式来处理。比如按钮的点击使用action,ScrollView滚动使用delegate...转载 2018-07-27 16:02:27 · 267 阅读 · 0 评论 -
3分钟实现iOS语言本地化/国际化(图文详解)
前言语言本地化,又叫做语言国际化。是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言。往往一些应用程序需要提供给多个国家的人群使用,或者一个国家有多种语言,这就要求应用程序所展示的文字、图片等信息,能够让讲不同语言的用户读懂、看懂。进而提出为同一个应用程序适配多种语言,也即是国际化。语言国际化之所以又叫做语言本地化,这是站在每个用户的角度而言的,是指能够让用户本...转载 2018-05-15 10:13:42 · 179 阅读 · 0 评论 -
iOS一种动态栅格布局方案
前言在日常开发过程中,我们会遇到一些需要不定期动态改变布局的页面或视图块,下面用张图展示一下:zdm_home.png我以这张图解释一下需求,图上的几块都是需要显示不同的功能模块,点击的时候也需要跳转到不同页面。这个布局实现很简单,但是如果这个布局需要不定期的更改,比如A换到右边,大小发生变化等不确定因素,我们不可能就发布一个新的版本去修改这个页面。所以大部分人会选择webView来实现,或者事先...转载 2018-02-08 17:35:23 · 226 阅读 · 0 评论 -
如何使用Carthage管理iOS依赖库
前言 很多ios开发者大概对CocoaPods并不陌生,我们几乎已经习惯了在pod文件中添加一行即可将一个库导入到自己的工程中,不得不说,在ios开发的历史中CocoaPods功不可没,即便在未来它也会在开发者中占据半壁江山。但是在这里我向大家介绍一个新的第三方库管理工具-Carthage,不管你是菜鸟还是老鸟,都希望这篇文章能为你打开一个新的世界。 很多人会问了,自己转载 2018-01-19 16:55:07 · 218 阅读 · 0 评论 -
一篇文章全吃透—史上最全YYModel的使用详解
开篇说明:虽然网上有很多讲解YYModel使用方法的文章,包括YYModel作者也在github上对其做了使用说明。但在我实际使用过程中,依然发现文档的不完善,比如对于复杂的模型(如多层嵌套)讲解的仍不透彻,同时本文也会介绍一神器配合YYModel使用,让你感受分分钟搞定模型创建的酸爽。当然为了减少读者的学习成本,本会对YYModel作者的文档进行丰富和扩展。可在github上下载转载 2018-01-20 16:55:27 · 391 阅读 · 0 评论 -
iOS Protocol、Category中声明属性
之前一直有一个误区,认为协议和分类中不能用@property 形式声明属性,现在做一下总结:iOS中协议中和分类中是可以用@property形式声明属性的,只不过在协议、分类中声明的属性,只有对应的setter/getter方法,并没有生成对应的成员变量。因为协议中只可以声明方法,分类中只能声明方法和对应的实现。那么如何在协议中用@property声明属性,然后在实现协议的类中可以用成员变转载 2018-02-05 20:53:23 · 1217 阅读 · 0 评论 -
Bitcode
Bitcode简介Bitcode is an intermediate representation of a compiled program. Apps you upload to iTunes Connect that contain bitcode will be compiled and linked on the App Store. Including bitcode wil转载 2018-02-07 15:08:56 · 248 阅读 · 0 评论 -
XCode 项目配置说明
项目配置:基本项(Basic)1、Architectures(指令集)——设置你想支持的指令集,目前ios的指令集有以下几种:(1)armv7,支持的机器iPhone4,iPhone4S(2)armv7s,支持的机器iPhone5,iPhone5C(3)arm64,支持的机器:iPhone5S及之后版本机器对指令集的支持是向下兼容的,因此armv7的指令集是可以运行在i转载 2018-02-07 15:09:22 · 842 阅读 · 0 评论 -
OS - Bitcode App 瘦身中间码
1、Bitcode随着 Xcode7 的发布,Apple 提供了一项新的技术来支持 App 瘦身功能,那就是 Bitcode。1、BitCode 是什么Bitcode is an intermediate representation of a compiled program. Apps you upload to iTunes Connect tha转载 2018-02-07 15:12:34 · 256 阅读 · 0 评论 -
细聊 Cocoapods 与 Xcode 工程配置
前言文章比较长,所以在文章的开头我打算简单介绍一下这篇文章将要讲述的内容,读者可以选择通篇细度,也可以直接找到自己感兴趣的部分。既然是谈 Cocoapods,那首先要搞明白它出现的背景。有经验的开发者都知道 Cocoapods 在实际使用中,经常遇到各种问题,存在一定的使用成本,因此衡量 Cocoapods 的成本和收益就显得很关键。Cocoapods 的本质是一套自动化工转载 2018-02-07 15:45:40 · 211 阅读 · 0 评论 -
Xcode 创建.a和framework静态库
最近因为项目中的聊天SDK,需要封装成静态库,所以实践了一下创建静态库的步骤,做下记录。库介绍库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。iOS中的静态库有 .a 和 .framework两种形式;动态库有.dylib 和 .framework 形式,后来.dylib动态库又被苹果替换成.tbd的形式。静态库与动态库的区别静态库和动转载 2018-02-07 20:14:25 · 196 阅读 · 0 评论