ios开发
文章平均质量分 54
lin_transform
https://github.com/LinTransform/YLShare
展开
-
OC 与 JS 交互 (UIWebView & WKWebView)
OC 与 JS 交互 分析原创 2017-08-29 15:16:45 · 258 阅读 · 0 评论 -
【支持iOS11】UITableView左滑删除自定义 - 实现多选项并使用自定义图片
写在开头:本文所介绍的方法使用的是iOS8-10中的API,不过支持在iOS11上运行。之后会写一篇介绍如何用iOS11的新API来实现,到时通知大家。(2017-08-16)本文介绍两种UITableView左滑菜单的实现方法,1. 默认, 2. 自定义。效果如下:1. 系统默认效果swipe-default.PNG2. 自定义图标效果 (类似“邮件”应用)swipe-转载 2017-11-06 17:20:27 · 4536 阅读 · 0 评论 -
AFN和ASI的区别
一、AFN和ASI的区别ASI的使用参照文顶顶的http://www.cnblogs.com/wendingding/p/3950027.html 1.底层实现1> AFN的底层基于OC的NSURLConnection和NSURLSession2> ASI的底层基于纯C语言的CFNetwork框架3> ASI的运行性能 高于 AFN2.对服务器返回的数据处理原创 2017-11-21 22:33:04 · 192 阅读 · 0 评论 -
iOS开发之CFNetWork的简单使用
CFNetWork是苹果提供的位于 Core Foundation 中的一个基于C的底层框架,是对更底层OS层BSD socket的封装,著名的网络框架ASI网络请求方面就是对CFNetWork进行封装的。CFNetWork主要依赖俩个API,CFSocket 和 CFStream,CFSocket主要用于网络底层的通信,而CFStream包括CFReadStream 和 CFWr转载 2017-11-21 22:36:28 · 528 阅读 · 0 评论 -
URLConnection & URLSession
**************NSURLConnection*****************NSURLConnection -从iOS 2.0 开始就有了,已经有10多年的历史。其异步方法是在ios 5.0 之后才有的,在5.0之前,是通过代理方法来实现网络开发。开发简单的网络请求还是比较方便的,可以利用异步方法。开发复杂的网络请求,例如大文件下载,仍然需要使用代理来开发,原创 2017-11-21 22:41:09 · 284 阅读 · 0 评论 -
iOS开发多线程篇—GCD介绍
一、简单介绍1.什么是GCD?全称是Grand Central Dispatch,可译为“牛逼的中枢调度器”纯C语言,提供了非常多强大的函数 2.GCD的优势GCD是苹果公司为多核的并行运算提出的解决方案GCD会自动利用更多的CPU内核(比如双核、四核)GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程)程序员只需要转载 2017-11-22 00:04:17 · 138 阅读 · 0 评论 -
iOS开发多线程篇—多线程简单介绍
一、进程和线程1.什么是进程 进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ、Xcode,系统就会分别启动2个进程通过“活动监视器”可以查看Mac系统中所开启的进程 2.什么是线程1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程)线程是进程的基本执行单元,一转载 2017-11-22 00:16:32 · 133 阅读 · 0 评论 -
iOS开发多线程篇—NSOperation简单介绍
一、NSOperation简介1.简单说明NSOperation的作⽤:配合使用NSOperation和NSOperationQueue也能实现多线程编程NSOperation和NSOperationQueue实现多线程的具体步骤:(1)先将需要执行的操作封装到一个NSOperation对象中(2)然后将NSOperation对象添加到NSOperationQueue中(3转载 2017-11-22 00:19:14 · 123 阅读 · 0 评论 -
NSOprationQueue 与 GCD 的区别与选用
GCD技术是一个轻量的,底层实现隐藏的神奇技术,我们能够通过GCD和block轻松实现多线程编程,有时候,GCD相比其他系统提供的多线程方法更加有效,当然,有时候GCD不是最佳选择,另一个多线程编程的技术NSOprationQueue 让我们能够将后台线程以队列方式依序执行,并提供更多操作的入口,这和 GCD的实现有些类似。这种类似不是一个巧合,在早期,MacOX 与 iOS原创 2017-11-22 00:22:18 · 299 阅读 · 0 评论 -
clang -rewrite-objc的使用点滴
原文出自【听云技术博客】:http://blog.tingyun.com/web/article/detail/845clang -rewrite-objc的作用是把oc代码转写成c/c++代码,我们常用它来窥探OC的一些秘密。1、最简单的例子main.m的代码如下:int main(int argc, char * argv[]) { int i=1 ;__blo转载 2017-11-24 10:10:39 · 377 阅读 · 0 评论 -
[译]关于iOS和OS X废弃的API你需要知道的一切
原文: Everything You Need to Know about iOS and OS X Deprecated APIs如你所知,已废弃(Deprecated)的API指的是那些已经过时的并且在将来某个时间最终会被移除掉的方法或类。通常,苹果在引入一个更优秀的API后就会把原来的API给废弃掉。因为,新引入的API通常意味着可以更好的发挥新硬件或操作系统的性能,或者可以使用一些翻译 2017-11-27 11:13:05 · 307 阅读 · 0 评论 -
iOS编译过程的原理和应用
前言一般可以将编程语言分为两种,编译语言和直译式语言。像C++,Objective C都是编译语言。编译语言在执行的时候,必须先通过编译器生成机器码,机器码可以直接在CPU上执行,所以执行效率较高。像JavaScript,Python都是直译式语言。直译式语言不需要经过编译的过程,而是在执行的时候通过一个中间的解释器将代码解释为CPU可以执行的代码。所以,较编译语言来说,直转载 2017-11-27 15:48:28 · 331 阅读 · 0 评论 -
IOS开发中ARC下的assign和weak区别
assign是指针赋值,不对引用计数操作,使用之后如果没有置为nil,可能就会产生野指针;而weak一旦不进行使用后,永远不会使用了,就不会产生野指针! 接下来用简单的代码说明一下:原创 2017-11-27 23:42:46 · 212 阅读 · 0 评论 -
IOS开发中 retain 和 strong 区别
在 ARC 机制下, retain 和 strong 基本相同,在 MRC 下,我们可以看到一些不一样:结论: MRC 下, strong 修饰 block 内部进行了 copy原创 2017-11-28 00:23:45 · 1568 阅读 · 0 评论 -
Method Swizzling
看到nshipster 的Method Swizzling这篇不错的文章还没翻译,就补充一下,没有逐字翻译,关于associated objects已经有翻译了,大家也可以去了解一下。 method swizzling也许是runtime中最有争议的技术,它的作用就是改变已经存在selector的实现,之所以可以这样是因为方法调用可以在运行时改变:通过改变类的分发表( dispa转载 2017-11-28 00:46:20 · 133 阅读 · 0 评论 -
IOS开发中NSRunloop跟NSTimer的问题
在Windows时代,大家肯定对SendMessage,PostMessage,GetMessage有所了解,这些都是windows中的消息处理函数,那对应在ios中是什么呢,其实就是NSRunloop这个东西。在ios中,所有消息都会被添加到NSRunloop中,分为‘input source’跟'timer source'种,并在循环中检查是不是有事件需要发生,如果需要那么就调用相应的函数处理转载 2017-11-28 00:51:15 · 170 阅读 · 0 评论 -
[OC]之 atomic 与 nonatomic的区别
我们声明属性的时候,必须要考虑到属性特质对编译器所产生的存取方法的影响。下面我们就主要讲讲atomic 与 nonatomic:在默认情况下,由编译器所合成的方法会通过锁定机制确保其原子性(atomicity)。如果属性具备nonatomic特质,则不需要同步锁。请注意!!!!尽管没有名为atomic的特质(如果某属性不具备nonatomic特质,那它就是“原子的”(ato转载 2017-11-28 01:05:07 · 247 阅读 · 0 评论 -
Objective-C中为何用copy修饰block
1:什么是block?block其实就是一个代码块,把你想要执行的代码封装在这个代码块里,等到需要的时候再去调用。那block是OC对象吗?答案是肯定的官方文档如下2:block要用copy修饰,还是用strongblock本身是像对象一样可以retain,和release。但是,block在创建的时候,它的内存是分配在栈(stack)上,而不是在堆(heap)原创 2017-11-20 01:59:14 · 273 阅读 · 0 评论 -
block使用小结、在arc中使用block、如何防止循环引用(zz)
引言使用block已经有一段时间了,感觉自己了解的还行,但是几天前看到CocoaChina上一个关于block的小测试主题: 【小测试】你真的知道blocks在Objective-C中是怎么工作的吗?,发现竟然做错了几道, 才知道自己想当然的理解是错误的,所以抽时间学习了下,并且通过一些测试代码进行测试,产生这篇博客。Block简介(copy一段)Block作为C语言的扩展转载 2017-11-20 01:27:17 · 196 阅读 · 0 评论 -
关于 iPad 转屏的问题
关于 iPad 常用的转屏方法原创 2017-08-29 11:34:48 · 498 阅读 · 0 评论 -
iOS 关于视频录制实现 (仿微信)
iOS 录制视频, 类似于 微信 拍照的实现原创 2017-09-07 16:54:23 · 5005 阅读 · 0 评论 -
WKWebView 和 UIWebView 的适配问题
webView 适配问题原创 2017-08-30 10:54:11 · 1126 阅读 · 0 评论 -
iOS 各种修饰符的区别汇总
atomic设置成员变量的@property属性时,默认为atomic,提供多线程安全。在多线程环境下,原子操作是必要的,否则有可能引起错误的结果。加了atomic,setter函数会变成下面这样:{lock}if (property != newValue) { [property release]; property = [newValue retain]; }原创 2017-10-11 17:11:58 · 505 阅读 · 0 评论 -
NSString属性什么时候用copy,什么时候用strong?
我们在声明一个NSString属性时,对于其内存相关特性,通常有两种选择(基于ARC环境):strong与copy。那这两者有什么区别呢?什么时候该用strong,什么时候该用copy呢?让我们先来看个例子。示例我们定义一个类,并为其声明两个字符串属性,如下所示:1234@interface TestS原创 2017-10-11 17:19:45 · 393 阅读 · 0 评论 -
iOS数据存储类型 及 堆(heap)和栈(stack)
一般认为在c中分为这几个存储区:1栈 -- 由编译器自动分配释放。2堆 -- 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。3全局区(静态存储区)-- 全局变量和静态变量的存储是放在一块区域 ,程序退出后自动释放 。全局区又分为全局初始化区和全局未初始化区。初始化的全局变量和静态变量存放在全局初始化区,未初始化的全局变量和未初始化的静态变量存放在相邻的另一块区转载 2017-10-11 17:43:50 · 888 阅读 · 0 评论 -
为什么NSMutableArray必须用strong,而NSArray必须用copy?
1.NSMutableArray:@property (nonatomic, copy) NSMutableArray *mArray;//等同于- (void)setMArray:(NSMutableArray *)mArray {_mArray = mArray.copy;}mArray属性就成了NSArray,NSMutableArray只能用stron原创 2017-10-11 17:27:29 · 445 阅读 · 0 评论 -
UITextView禁用复制粘贴放大
(1) [textView setDelegate:self];(2) [textView setEditable:YES];(3) -(BOOL)textViewShouldBeginEditing:(UITextView *)textView{ return NO;}注意点:textView.editable一定要设置成YES亲测有效转载 2017-10-26 15:52:44 · 891 阅读 · 0 评论 -
2016 CocosPods安装教程
本文投稿文章,作者:skytoup(Github)CocoaPods简介CocoaPods是一个管理Swift和Objective-C的Cocoa项目的依赖工具。它现在有超过一万八千多个库,可以优雅地帮助你扩展你的项目。简单的说,就是替你管理Swift和Objective-C的Cocoa项目的第三方库引入。官网地址: https://cocoapods.org/安装转载 2017-11-14 16:46:13 · 161 阅读 · 0 评论 -
iOS 常用修饰词
【atomic/nonatomic】 (1)atomic[默认属性]:OC使用的一种线程保护技术,是防止在写未完成的时候被另外一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所以在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。 (2)nonatomic:非原子性访问,属性赋值的时候不加锁,多线程并发访问会提高性能。但可能会造成原创 2017-11-19 12:34:55 · 314 阅读 · 0 评论 -
retain 和 assign 的区别使用
MRC 下,会出现循环 retain 的问题,这种情况下,一次 release 并不能完成释放,如下:#import <Foundation/Foundation.h>@class Person;@interface Car : NSObject@property (nonatomic , retain ) Person * ownerPerson;@end#import <Foundation/原创 2017-11-19 16:46:44 · 441 阅读 · 0 评论 -
NSString NSMutableString NSArray NSMutableArray Block 分别用哪些修饰?
NSString NSMutableString NSArray NSMutableArray Block 分别用哪些修饰?原创 2017-11-19 17:37:00 · 1513 阅读 · 0 评论 -
(深入理解计算机系统) bss段,data段、text段、堆(heap)和栈(stack)
bss段: bss段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。 bss是英文Block Started by Symbol的简称。 bss段属于静态内存分配。 data段: 数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。 数据段属于静态内存分配。转载 2017-11-19 18:16:23 · 583 阅读 · 0 评论 -
text段,data段,bss段,堆和栈
一个程序一般分为3段:text段,data段,bss段text段:就是放程序代码的,编译时确定,只读,data段:存放在编译阶段(而非运行时)就能确定的数据,可读可写就是通常所说的静态存储区,赋了初值的全局变量和静态变量存放在这个区域,常量也存放在这个区域bss段:定义而没有赋初值的全局变量和静态变量,放在这个区域这个够不够清楚呢?堆转载 2017-11-19 18:27:02 · 212 阅读 · 0 评论 -
NSString 类的内存管理问题
NSString原创 2017-11-19 20:04:45 · 198 阅读 · 0 评论 -
__weak与__block区别,深层理解两者区别
准备工作首先我定义了一个类 MyObject 继承 NSObject,并添加了一个属性 text,重写了description方法,返回 text 的值。这个主要是因为编译器本身对 NSString 是有优化的,创建的 string 对象有可能是静态存储区永不释放的,为了避免使用 NSString 引起一些问题,还是创建一个 NSObject 对象比较合适。另外我自定义了一个转载 2017-11-20 00:27:51 · 297 阅读 · 0 评论 -
Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are
今天pod search 一个库时发现搜索到的版本比github上的最新版本旧,于是采用下面的命令更新Cocoapods的库pod repo update master –verbose 执行后却报了下面的错误:Updating spec repo master [!] Failed to connect to GitHub to update the CocoaPods/Specs ...转载 2018-05-12 11:21:33 · 809 阅读 · 0 评论