技术文献
文章平均质量分 93
iOS学堂
转到简书, 给策 。iOS程序员一枚,正在不断的学习进取中,希望结交各位志同道合的朋友,一起学习,共同进步,共创事业 !
展开
-
HTTP协议详解
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。HTTP协议的主要特点可概括如下:1.支持客户/服务器模式。原创 2017-01-07 10:56:22 · 238 阅读 · 0 评论 -
Chisel-LLDB命令插件,让调试更Easy
LLDB 是一个有着 REPL 的特性和 C++ ,Python 插件的开源调试器。LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。调试器允许你在程序运行的特定时暂停它,你可以查看变量的值,执行自定的指令,并且按照你所认为合适的步骤来操作程序的进展。(这里有一个关于调试器如何工作的总体的解释。)相信每个人或多或少都在用LLDB来调试,比如po一个对象。LLDB的是非常强大的转载 2017-07-26 14:52:17 · 2297 阅读 · 0 评论 -
具透 | iOS 10.3 新 App Store 评价机制详解
在 iOS 10.3 中,一个重要的变化是 Apple 引入了新的 App Store 评价机制。用户可以直接在 App 内进行评分,开发者可以对用户在 App Store 的评论进行回复。这些新机制对我们的日常使用会产生哪些影响,开发者又如何看待这些新机制?新机制,新在何处?评分,你不再需要前往 App Store在 iOS 10.3 之前,如果你要给一个应用评分,那么你原创 2017-07-26 12:03:31 · 2170 阅读 · 0 评论 -
iOS开发模拟网络状态差
在开发iOS的过程当中,我们经常需要模拟不同的网络环境,来对程序进行测试。以下是分别对模拟器和真机状态下的两种不同的方法,亲测有效。1.模拟器情况下模拟器方面,苹果给我们提供了一个很实用的工具,Network Link Conditioner可以模拟各种不同状况下的网络环境,方便我们进行测试。安装Network Link Conditioner位于”Hardware转载 2017-06-14 09:51:49 · 558 阅读 · 0 评论 -
iOS逆向:在任意app上开启malloc stack追踪内存来源
lldb有一个内存调试工具malloc stack,开启以后就可以查看某个内存地址的malloc和free记录,追踪对象是在哪里创建的。这个工具可以打印出对象创建的堆栈,而在逆向时,也经常需要追踪某些方法的调用栈,如果可以随时打印出某个对象的创建记录,也就能直接找到其所在的类和方法,不用再花费大量的时间去打log和动态调试追踪了。malloc stack在自己的项目中,要开转载 2017-06-30 17:30:54 · 2585 阅读 · 0 评论 -
iOS Copy与MutableCopy 和 Copy与Strong 深度解析
开发中,数据处理是整个项目的重中之重,清晰的数据结构,安全高效的处理流程,能大大提高开发效率和系统的稳定性。数据是事物状态和变化的记录,具有可修改性和拷贝性,当多处使用,并有可能改变时,为了保障原数据的不变,我们需要拷贝一份新的数据,改变新的数据,而不改变原数据。数据处理中的,操作权限控制,数据的传递,数据的深、浅拷贝等。今天主要深度分析下,Copy与MutableCopy 和 Copy与Strong 区别及使用。原创 2017-05-17 19:40:25 · 2756 阅读 · 0 评论 -
iOS开发程序中各种变量的存储位置和程序返回变量的问题
c++内存到底分几个区?一: 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由os回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块转载 2017-05-19 12:51:12 · 1430 阅读 · 0 评论 -
中文字符ASCII码和NSString相互转换
不同语言的每个字符的utf8编码的字节数不一样,字节码也不一样。对于英文字符,查看它的ascii码,很方便,将字符取出来,就是它的ascii码。其实,对于非英文字符,取字符集编码的方式也是这样。这样统称为取ASCII码,在很多文档中也是这样描述的。转载 2017-05-25 11:05:28 · 5007 阅读 · 0 评论 -
UIWindow 详解及使用场景
首先来看一下UIWindow 继承关系方法和属性NS_CLASS_AVAILABLE_IOS(2_0) @interface UIWindow : UIView//window的屏幕,默认是 [UIScreen mainScreen] ,不能更改,否则没有界面@property(nonatomic,strong) UIScreen *screen NS_AVAILA原创 2017-05-05 12:44:18 · 1026 阅读 · 0 评论 -
iOS开发底层知识——Runtime详解
首先,让我们先对runtime的底层概念梳理下,若想看怎么用可以翻到底部!简介Runtime 又叫运行时,是一套底层的 C 语言 API,其为 iOS 内部的核心之一,我们平时编写的 OC 代码,底层都是基于它来实现的。比如:[receiver message];// 底层运行时会被编译器转化为:objc_msgSend(receiver, selector)原创 2017-03-13 15:03:06 · 2813 阅读 · 0 评论 -
十分钟搞清字符集和字符编码
背景:字符集和编码无疑是IT菜鸟甚至是各种大神的头痛问题。当遇到纷繁复杂的字符集,各种火星文和乱码时,问题的定位往往变得非常困难。本文就将会从原理方面对字符集和编码做个简单的科普介绍,同时也会介绍一些通用的乱码故障定位的方法以方便读者以后能够更从容的定位相关问题。在正式介绍之前,先做个小申明:如果你希望非常精确的理解各个名词的解释,那么可以查阅wikipedia。本文是博主通过自己理解消化后并转化原创 2017-01-09 10:49:33 · 326 阅读 · 0 评论 -
浅谈依赖注入思想与面向接口编程
依赖注入(Dependency Injection)今天我们讨论的内容核心是面向接口编程,我决定还是要从依赖注入开始讲起,因为DI的思想可以说是面向接口编程思想的特殊表现,也可以说是与面向接口编程相辅相成。先撇开让人头脑发晕的文字定义,我们还是用我们最忠实和伙伴——代码来了解依赖注入。我们先来一个粗略的例子,由浅入深:我们有一个公交车类(Bus),每天早上6点钟需要发车(work)原创 2017-01-07 15:21:49 · 3577 阅读 · 2 评论 -
tcp ip http socket https 基本理解
网络七层:物数网传会表应.分别为物理层,数据链路层,网络层,传输层,会话层,表示层,应用层.其中,底层三层:物理层,数据链路层,网络层是网络工程师研究的对象,而其它四层,是用户面向和关心的问题. ISO七层协议体系:7 应用层 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP6 表示层 例如XDR、ASN.1、原创 2017-01-07 15:07:03 · 1471 阅读 · 0 评论 -
HTTPS详解——有何优势、与HTTP有何不同?
网景在1994年创建了HTTPS,并应用在网景导航者浏览器中。最近大家在使用百度、谷歌或淘宝的时候,是不是注意浏览器左上角已经全部出现了一把绿色锁,这把锁表明该网站已经使用了 HTTPS 进行保护。仔细观察,会发现这些网站已经全站使用 HTTPS。同时,iOS 9 系统默认把所有的 http 请求都改为 HTTPS 请求。随着互联网的发展,现代互联网正在逐渐进入全站 HTTPS 时代。转载 2017-01-07 11:46:41 · 2948 阅读 · 1 评论 -
深入理解RunLoop
RunLoop 是 iOS 和 OS X 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。目录RunLoop 的概念RunLoop 与线程的关系RunLoop 对原创 2017-09-14 10:20:48 · 392 阅读 · 0 评论