
OC-方法
文章平均质量分 63
一度_iOSDeveloper
做好自己,做更好的自己
展开
-
iOS多线程:『NSOperation、NSOperationQueue』详尽总结
本文用来介绍 iOS 多线程中 NSOperation、NSOperationQueue 的相关知识以及使用方法。通过本文,您将了解到:NSOperation、NSOperationQueue 简介、操作和操作队列、使用步骤和基本使用方法、控制串行/并发执行、NSOperation 操作依赖和优先级、线程间的通信、线程同步和线程安全,以及 NSOperation、NSOperationQueue ...转载 2018-03-13 11:19:47 · 416 阅读 · 0 评论 -
关于iOS多线程
在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项。当然也会给出几种多线程的案例,在实际使用中感受它们的区别。还有一点需要说明的是,这篇文章将会使用Swift 和 Objective-c 两种语言讲解,双语幼儿园。OK,let's begin!概述这篇文章中,我不会说多线程是什么、线程和进程的区别、多线程有什么用,当然我也不会说什么是串行、什么是并行转载 2016-06-14 16:31:55 · 565 阅读 · 0 评论 -
iOS 万能跳转界面方法 (runtime实用篇一)
在开发项目中,会有这样变态的需求:推送:根据服务端推送过来的数据规则,跳转到对应的控制器feeds列表:不同类似的cell,可能跳转不同的控制器(嘘!产品经理是这样要求:我也不确定会跳转哪个界面哦,可能是这个又可能是那个,能给我做灵活吗?根据后台返回规则任意跳转?)思考:wocao!这变态的需求,要拒绝他吗?switch判断呗,考虑所有跳转的因素?这转载 2016-06-14 16:30:38 · 2111 阅读 · 0 评论 -
__block 与 __weak的区别与使用
1.__block对象在block中是可以被修改、重新赋值的。 2.__block对象在block中不会被block强引用一次,从而不会出现循环引用问题。3.__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。 4.__weak只能在ARC模式下使用,也只能修饰对象(NSString),不能修饰基本数据类型(int)。 5.__block对象原创 2016-07-11 15:12:46 · 629 阅读 · 0 评论 -
NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象
一、了解NSUserDefaults以及它可以直接存储的类型 NSUserDefaults是一个单例,在整个程序中只有一个实例对象,他可以用于数据的永久保存,而且简单实用,这是它可以让数据自由传递的一个前提,也是大家喜欢用它保存简单数据的一个主要原因。 使用 NSUserDefaults 存储自定义对象的最初,我们必须认识NSUserDef转载 2016-06-04 18:52:37 · 437 阅读 · 0 评论 -
iOS 将字典 数组 转换成 NSdata 或者 NSString
NSObject+JSONCategories.h#import @interface NSObject (JSONCategories)/** * 描述:将NSArray或者NSDictionary转化为NSData * 参数: * 返回值:转化后的NSData * */-(NSData*)JSONData;/** * 描述:将NSArray或者NSDict转载 2016-06-04 18:51:26 · 6043 阅读 · 0 评论 -
AppDelegate生命周期详解
#pragma mark 在应用程序加载完毕之后调用- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ NSLog(@"didFinishLaunchingWithOptions-加载完毕");原创 2016-05-23 15:41:35 · 361 阅读 · 0 评论 -
Masonry介绍与使用实践:快速上手Autolayout
前言1MagicNumber -> autoresizingMask -> autolayout以上是纯手写代码所经历的关于页面布局的三个时期在iphone1-iphone3gs时代 window的size固定为(320,480) 我们只需要简单计算一下相对位置就好了在iphone4-iphon转载 2016-05-09 15:14:43 · 447 阅读 · 0 评论 -
关于removeFromSuperview的一系列处理
该文章属于原创,转载请注明: http://www.jianshu.com/p/6a222d693d50视图结构在iOS当中,视图的结构是以树型结构作为存储的数据结构,这种数据结构有一个很好的优点:父子关系分明,从根节点出发,通过叶节点向下扩展,同一枝的上一个节点就是下一个节点的superview,下一个节点就是上一个节点的subview;不同枝如果同层,则为兄转载 2016-05-19 13:37:33 · 3386 阅读 · 0 评论 -
FMDB官方使用文档
由于FMDB是建立在SQLite的之上的,所以你至少也该把这篇文章从头到尾读一遍。与此同时,把SQLite的文档页 加到你的书签中。自动引用计数(APC)还是手动内存管理呢?两种都行,FMDB会在编译的时候知道你是用的哪一种,然后进行相应处理。使用方法FMDB有三个主要的类1.FMDatabase – 表示一个单独的SQLite数据库。 用来执行SQLite的命令。转载 2016-05-19 13:35:21 · 359 阅读 · 0 评论 -
百度地图使用地理编码与反地址编码
1、地理编码指的是将地址位置(中文地址)转换成经纬度,反地址编码指的是将经纬度转换成地址位置;2、在百度地图中需要用到三个关键性的类:BMKGeoCodeSearch、BMKGeoCodeSearchOption、BMKReverseGeoCodeOption;3、BMKGeoCodeSearch:地理编码主类,用来查询、返回结果信息(地址位置或经纬度);4、BMKGeoC转载 2016-05-19 13:01:01 · 8548 阅读 · 0 评论 -
SDWebImage使用详解
SDWebImage使用详解这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。使用示范的代码:UITableView使用UIImageView+WebCache类(基本应用,UIImageView的一个category)前提#import导入UIImageView+WebCache.h文件,然后在t转载 2016-05-27 09:20:28 · 1228 阅读 · 0 评论 -
数据库操作(使用FMDB)
iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便。于是,就出现了一系列将SQLite API进行封装的库,例如FMDB、PlausibleDatabase、sqlitepersistentobjects等,FMDB (https://github.com/ccgus/fmdb) 是一款简洁、易用的封装库,这一篇文章简单介绍下FMDB的使用。在FMDB下载文件转载 2016-05-12 18:04:44 · 475 阅读 · 0 评论 -
关于UITextView的几种回收键盘的方法
1.如果你程序是有导航条的,可以在导航条上面加多一个Done的按钮,用来退出键盘,当然要先实UITextViewDelegate。代码如下:- (void)textViewDidBeginEditing:(UITextView *)textView { UIBarButtonItem *done = [[[UIBarButtonItem alloc] initWithBa转载 2016-05-12 10:41:12 · 379 阅读 · 0 评论 -
GCD基本用法
ios中多线程有三种,NSTread, NSOperation,GCD 这篇就讲讲GCD的基本用法 平时比较多使用和看到的是: 复制代码dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //异步操作代码块 dis转载 2016-05-12 09:36:58 · 517 阅读 · 0 评论 -
UIImageView自适应图片大小
窗口大小获取: CGRect screenBounds = [ [UIScreenmainScreen]bounds];//返回的是带有状态栏的RectCGRect rect = [ [UIScreenmainScreen]applicationFrame];//不包含状态栏的RectUIImageView:一 :圆角以及自适应图片大小 UIIma转载 2016-05-12 09:34:33 · 8830 阅读 · 0 评论 -
ios上 更改 状态栏(UIStatusBar)的颜色
IOS上 关于状态栏的相关设置(UIStatusBar)知识普及ios上状态栏 就是指的最上面的20像素高的部分状态栏分前后两部分,要分清这两个概念,后面会用到:前景部分:就是指的显示电池、时间等部分;背景部分:就是显示黑色或者图片的背景部分;如下图:前景部分为白色,背景部分为黑色注意:这里只涉及到ios7以及更高版本,低版本下面的讲解可能无转载 2016-06-21 19:38:09 · 534 阅读 · 0 评论 -
performSelector afterDelay 区别 dispatch_after 及 其他
我们在.m文件里面加入如下方法 - (void)viewDidLoad { [super viewDidLoad]; NSThread * thread = [[NSThread alloc] initWithTarget:self selector:@selector(threadRun) object:nil]; [thread原创 2016-08-12 16:37:08 · 2785 阅读 · 0 评论 -
ios获取图片exif信息
[objc] view plain copy#include "AssetsLibrary/ALAssetsLibrary.h" #include "AssetsLibrary/ALAssetRepresentation.h" [objc] view plain copy- (void)imagePicke转载 2017-08-03 12:00:09 · 2317 阅读 · 0 评论 -
iOS数组倒序排列
代码如下: _dataArray=[[NSMutableArray alloc]init]; [_dataArray addObjectsFromArray:[messageInfoDict objectForKey:@"payMessage"]];//如果数组中装的是1,2,3,4经过reverseObjectEnumerator处理后,数组中各个元素会倒序排转载 2017-06-06 16:18:28 · 1715 阅读 · 0 评论 -
AVSpeechSynthesizer详解
介绍从IOS5开始,IOS系统已经在siri上集成了语音合成的功能,但是是私有API。但是在IOS7,新增了一个简单的API----AVSpeechSynthesizer来做这件事情。案列如下:#import "SpeechSynthesisViewController.h"#import @property (nonatomic, strong) AVSpeechSy转载 2017-05-31 10:27:55 · 686 阅读 · 0 评论 -
iOS 之NSJSONReadingOptions说明
首先用代码来说明NSJSONReadingMutableContainers的作用: 1 NSString *str = @"{\"name\":\"kaixuan_166\"}"; 2 3 NSMutableDictionary *dict = [NSJSONSerialization JSONObjectWithData:[str dataUsingE转载 2017-04-28 16:19:01 · 454 阅读 · 0 评论 -
IOS---NSdata 与 NSString,Byte数组,UIImage 的相互转换
1. NSData 与 NSStringNSData-> NSStringNSString *aString = [[NSString alloc] initWithData:adataencoding:NSUTF8StringEncoding];NSString->NSDataNSString *aString = @"1234abcd";转载 2017-03-29 11:58:10 · 2711 阅读 · 0 评论 -
iOS开发之获取系统相册中的图片与视频(内带url转换)
@话不多说,直接上代码[objc] view plaincopy#import // 必须导入 // 照片原图路径 #define KOriginalPhotoImagePath \ [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory,转载 2017-03-06 09:15:27 · 1030 阅读 · 0 评论 -
IOS开发UI篇--IOS动画(Core Animation)总结
一、简介IOS 动画主要是指Core Animation框架。官方使用文档地址为:Core Animation Guide。Core Animation是IOS和OS X平台上负责图形渲染与动画的基础框架。Core Animation可以作用与动画视图或者其他可视元素,为你完成了动画所需的大部分绘帧工作。你只需要配置少量的动画参数(如开始点的位置和结束点的位置)即可使用Core Ani转载 2016-10-25 17:26:49 · 940 阅读 · 0 评论 -
解决隐藏tabbar后底部视图button不响应问题
在controller中加入- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) {原创 2015-12-23 13:18:04 · 686 阅读 · 0 评论 -
解决UITableView设置了偏移量但是不偏移的问题
众所周知 设置UITableView的偏移量很简单。一句话self.table.contentOffset = CGPointMake(0, 100)但是当你的cell个数 与高度达不到整个页面的高度的时候tableview此时是不产生偏移的。尽管你打印 contentoffset 的值是有的。这个问题困扰了我一个原创 2016-01-12 09:45:35 · 7033 阅读 · 2 评论 -
解决tableView分割线不顶头
第一种(不自己划线)第一步//1.解决tableView分割线不顶头 if ([self.table respondsToSelector:@selector(setSeparatorInset:)])[self.table setSeparatorInset:UIEdgeInsetsZero]; if ([self.table respondsToSe原创 2016-01-15 14:33:35 · 1397 阅读 · 0 评论 -
iOS中UITextView遇到的问题总结
前言由于iOS中的UITextField不支持文本换行,所以在有换行需求时,我们只好用UITextView。以下是在使用UITextView时很容易遇到的一些问题。问题一:UITextView显示边框UITextView默认是没有边框颜色的,没有直接的属性来设置边框颜色。可以使用layer属性来解决,代码如下:[objc] view pl转载 2016-10-26 13:04:54 · 1328 阅读 · 0 评论 -
iOS摇一摇功能方法实现
//只需要让这个Controller本身支持摇动 //同时让他成为第一相应者: - (void)viewDidLoad { [super viewDidLoad]; [[UIApplicationsharedApplication] setApplicationSupportsShakeToEdit:YES]; [selfbecomeFirstRespo原创 2016-09-29 13:33:10 · 1627 阅读 · 0 评论 -
iOS 关于屏幕旋转shouldAutorotate
iOS中关于shouldAutorotate(屏幕旋转的问题);在这之前必须在你的Info里面配置你的支持方向信息:targets -> General -> Deployment Info我们的项目需要在个别的menuController里面是需要旋转,有的menuController是不需要旋转。我就尝试写个demo看是不是能旋转,不旋转;在demo里面测试是OK的。当我进转载 2016-09-28 09:50:49 · 1945 阅读 · 0 评论 -
iOS实现感知哈希算法
感知哈希算法(以下简称PHA)是哈希算法的一类,主要用来做相似图片的搜索工作。PHA是一类比较哈希方法的统称。图片所包含的特征被用来生成一组指纹(不过它不是唯一的),而这些指纹是可以进行比较的。下面是简单的步骤,来说明对图像进行PHA的运算过程:第一步,缩小尺寸。最快速的去除高频和细节,只保留结构明暗的方法就是缩小尺寸。将图片缩小到8x8的尺寸,总共64个像素。摒弃转载 2016-10-13 11:54:49 · 2701 阅读 · 0 评论 -
谓词(NSPredicate)
OC中的谓词操作是针对于数组类型的,他就好比数据库中的查询操作,数据源就是数组,这样的好处是我们不需要编写很多代码就可以去操作数组,同时也起到过滤的作用,我们可以编写简单的谓词语句,就可以从数组中过滤出我们想要的数据。非常方便。在Java中是没有这种技术的,但是有开源的框架已经实现了此功能。下面来看一下具体的例子吧:Person.h[objc]转载 2016-11-03 15:19:07 · 360 阅读 · 0 评论 -
脱机一次性口令OTP原理(将用户id加密到一串数字中)类似微信支付宝付款码,将军令等
离线二维码的技术原型是在行业中广泛使用的一次性口令(OTP, One-time Password),使用了该技术的产品除了有支付宝和微信,还有银行U盾、游戏令牌等硬件设备。在翼支付的离线二维码上,方案的设计概述为:1、 登录翼支付,服务器生成唯一token,通过加密方式(如https)传递到客户端。2、 打开付款码时,本地生成一段含有token与当前时时间戳的哈希值,如原创 2016-10-12 10:23:32 · 5606 阅读 · 1 评论 -
快速集成支付宝支付步骤及注意事项(原创)
本文介绍了iOS快速集成支付宝支付的方法,本文中介绍的方法是经过一次封装,因此配置完成之后调用仅需一行代码即可支付宝支付,非常的方便,希望大家喜欢。我只是根据官方的文档,对支付宝的SDK做了进一步封装,其中密钥的生成很简单,需要看官方的文档,官方的文档我在工程附件目录里也有一份,如果需要马上集成,没工夫研究的话,可以大致看一下密钥的生成即可,其他的配置我会在下面进行讨论。原创 2016-04-12 17:35:48 · 4360 阅读 · 1 评论 -
iOS基础CGAffineTransform的简单使用
CoreGraphics框架中的CGAffineTransform类可用于设定UIView的transform属性,控制视图的缩放、旋转和平移操作:另称放射变换矩阵,可参照线性代数的矩阵实现方式0.0这里附上的CGAffineTransform官方文档:https://developer.apple.com/library/ios/documentation/Graphic转载 2016-04-07 18:14:14 · 4209 阅读 · 0 评论 -
ios 画圆环进度条
#import @interface SNCircleProgressView : UIView/** * 进度值0-1.0之间 */@property (nonatomic,assign)CGFloat progressValue;/** * 边宽 */@property(nonatomic,assign) CGFloat progressStrokeWidth;/转载 2016-01-05 13:42:34 · 2821 阅读 · 0 评论 -
UILabel字间距行间距
//设置字间距[self.label setColumnSpace:5];//设置行间距[self.label setRowSpace:5];原创 2016-01-04 17:49:17 · 518 阅读 · 0 评论 -
一段代码解释retain,strong和copy的区别
@interface AppDelegate : UIResponder { NSString *retainStr; NSString *copStr; NSString *strongStr;}@property (retain, nonatomic) NSString *retainStr;@property (strong, nonatom原创 2015-12-30 15:08:03 · 1309 阅读 · 0 评论 -
用数组的形式分解UILabel的每行文字
导入头文件#import - (NSArray *)getSeparatedLinesFromLabel:(UILabel *)label{ NSString *text = [label text]; UIFont *font = [label font]; CGRect rect = [label frame];原创 2015-12-24 15:52:01 · 871 阅读 · 0 评论