iOS
文章平均质量分 77
梦想家-mxj
这个作者很懒,什么都没留下…
展开
-
Masonry 源码简单解析
Masonry是一个轻量级的用于自动布局的框架,是对系统的自动布局约束的一个封装。Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。上面是Masonry的类图,从类图中我们来整体的分析Masonry框架的结构。然后再由整体到部分逐渐的细化,窥探其内部的实现细节。masonry框架的类结构根据上面的类图,我们分别看一下框架里面各个类。1、UIView的分类 - V.原创 2021-07-14 17:28:11 · 421 阅读 · 1 评论 -
Runloop线程常驻
在iOS开发过程中,有时一些花费时间比较长的操作阻塞主线程,导致界面卡顿,那么我们就会创建一个子线程,然后把这些花费时间比较长的操作放在子线程中来处理。可是当子线程中的任务执行完毕后,子线程就会被销毁掉。如果程序中,需要经常在子线程中执行任务,频繁的创建和销毁线程,会造成资源的浪费。这时候我们就可以使用RunLoop来让该线程长时间存活而不被销毁。来个案例,在睡眠时,通过硬件获取数据信息(比如心电信息),开始睡眠时,创建runloop,使得子线程常驻,用于写数据到文件睡眠结束后,退出runl.原创 2021-07-14 14:53:49 · 373 阅读 · 0 评论 -
源码分析之AFNetworking④UIkit+AFNetworking
如果需要使用AFNetworking的UIKit扩展时可直接在prefix.pch文件中引入,或者在工程的相关文件中引入。1、AFAutoPurgingImageCache :用于缓存图片的类,通过identifier来添加和搜索UIImage协议中添加图片:- (void)addImage:(UIImage*)image withIdentifier:(NSString *)identifier;协议中删除图片- (BOOL)removeImageWithIdentifier:(NSStri.原创 2021-07-14 09:33:16 · 431 阅读 · 1 评论 -
源码分析之AFNetworking③AFSecurityPolicy和AFURLRequestSerialization
首先看一下AFSecurityPolicy的属性:1、https验证模式,默认无,还有证书匹配和公钥匹配@property (readonly, nonatomic, assign) AFSSLPinningMode SSLPinningMode;typedef NS_ENUM(NSUInteger, AFSSLPinningMode) {AFSSLPinningModeNone,AFSSLPinningModePublicKey,AFSSLPinningModeCertificate,};原创 2021-07-13 17:29:28 · 163 阅读 · 0 评论 -
源码分析之AFNetworking ②AFNetworkReachabilityManager
AFNetworkReachabilityManager对象用于监听设备当前连接网络的状态。AFNetworkReachabilityManager提供了4种创建方法:(instancetype)sharedManager; //创建单例(instancetype)manager;//创建实例对象(instancetype)managerForDomain:(NSString *)domain;//根据地址名创建实例对象(instancetype)managerForAddress原创 2021-07-13 17:16:30 · 278 阅读 · 0 评论 -
源码分析之AFNetworking ①AFURLSessionManager与AFHTTPSessionManager
首先查看afn的结构,如下:可以看到AF分为如下5个功能模块: 网络通信模块(最核心)(AFURLSessionManager、AFHTTPSessionManager) 网络状态监听模块(Reachability) 网络通信安全策略模块(Security) 网络通信信息序列化/反序列化模块(Serialization) 对于iOS UIkit库的拓展(UIKit)一、1.网络通信模块-AFURLSessionManager与AFHTTPSes原创 2021-07-13 16:35:36 · 779 阅读 · 0 评论 -
iOS MOV转MP4
废话不多说,直接上转换代码+ (NSURL *)jjMovConvert2Mp4:(NSURL *)movUrl{ NSURL *mp4Url = nil; AVURLAsset *avAsset = [AVURLAsset URLAssetWithURL:movUrl options:nil]; NSArray *compatiblePresets = [AVAssetExportSession exportPrese原创 2020-05-25 14:38:54 · 1079 阅读 · 0 评论 -
iOS 使用UIBezierPath实现不等距曲线图
iOS,关于画线有很多很好的第三方,比如Charts、ECharts等等,但是我没有找到画不等距的,就自己简单的实现了一下。首先看,效果就是描点画线加动画,没有太难的。我自定义了一个LineChartView,和几个模型,具体demo下面会给链接给lineChartview暴露出了几个属性和方法,都有注释在controller里面进行初始化配置setChartView方法self.chartView.y_TextFont = [UIFont systemFontOfSize:14];原创 2020-05-25 13:49:28 · 280 阅读 · 0 评论 -
iOS提升开发效率-常用代码块
Xcode支持自定义代码段,当输入某个关键字就能提示出某个代码段。把常用的代码段保存下来,绝对对开发效率有很大的提高。一、添加代码块:在Xcode中右键,如下图选择‘Create Code Snippet’,即可创建新的代码块,比如我新建了一个定义block的代码块,保存之后,在需要的地方,输入qblo的时候就会有代码块提示,如下图选中回车后,我们需要的代码块就有了二、常用代码块1.strong/** <#描述#> */@prop..原创 2020-05-09 10:22:09 · 445 阅读 · 0 评论 -
sharesdk 实现三方登陆、分享及关注的功能
(1)官方下载ShareSDK iOS 2.8.8,地址:http://sharesdk.cn/(2)根据实际情况,引入相关的库,参考官方文档。(3)在项目的AppDelegate中一般情况下有三个操作,第一是注册ShareSDK,第二是注册各个平台的账号,第三是关于微信等应用的回调处理。[objc] view plaincopy原创 2015-12-28 08:33:12 · 777 阅读 · 0 评论 -
UIAlertController的使用
一 概述在IOS8之后,UIAlertController替代了UIActionSheet和UIAlertView。把两种类型的提示信息放到这一个类里来实现。 注意, 这个class不能通过继承的方式来自定义。二 类介绍先举两个使用的例子 例子一 UIAlertController * alertController = [UIAlertController原创 2015-12-28 10:45:38 · 538 阅读 · 0 评论 -
iOS 9下的shareSDK集成的常见问题及解决方案
问题描述:在iOS9下,系统默认会拦截对http协议接口的访问,因此无法获取http协议接口的数据。对ShareSDK来说,具体表现可能是,无法授权、分享、获取用户信息等。还可能造成我们的编辑界面里传http之类的网络图片的时候,我们的编辑界面不会显示图片截图,解决的办法或者全面关闭https,允许使用http请求;或者把图片的域添加;又或者选择使用https的图片解决方案(以下方原创 2015-12-28 18:10:50 · 10093 阅读 · 0 评论 -
iOS:友盟SDK第三方登录 分享及友盟统计的使用
下面就是关于使用友盟社会化组件的详细过程:一、集成过程集成友盟社会化组件的主要流程是: 注册友盟帐号=》创建推送应用=》下载SDK=》集成开发=》测试应用=》发布应用1、注册友盟账号友盟开发者账号的注册地址:http://www.umeng.com/users/sign_up2、创建新应用使用注册的友盟账号登录后进入我的产品,在屏幕左方会看到添加原创 2015-12-14 18:20:16 · 4190 阅读 · 0 评论 -
友盟的常见使用----三方登陆、分享和“埋点”(友盟统计)
友盟,专业的移动开发者服务平台,为移动开发者提供免费的应用统计分析、社交分享、消息推送、自动更新、在线参数、移动推广效果分析、微社区等,下面是要分享的内容第三方登录流程友盟支持第三方登录的平台友盟社会化分享支持的平台集成友盟社会化组件流程友盟社会化SDK集成流程注意事项示例代码第三方登录流程移动应用授权效果图如下:友盟支持原创 2015-12-14 18:40:34 · 22877 阅读 · 0 评论 -
iOS 键盘类型定制归纳
有的时候我们在Xcode的虚拟机上显示不出来手机键盘,那是因为我们没有设置正确:原创 2015-12-14 09:13:36 · 523 阅读 · 0 评论 -
iOS开发遇到的问题
【385】【scrollView不接受点击事件,是因为事件传递失败】//// MyScrollView.m// Created by beyond on 15/6/6.// Copyright (c) 2015年 beyond.com All rights reserved.// 不一定要用继承,可以使用分类#import "My转载 2016-01-15 19:07:28 · 5323 阅读 · 1 评论 -
提示框的综合使用--UIAlertViewController
UIAlertViewController貌似把UIAlertView和UIActionSheet二合一了- (void)showOkayCancelAlert { NSString *title = NSLocalizedString(@"A Short Title Is Best", nil); NSString *message = NSLocalizedString(@原创 2015-12-29 16:45:14 · 2125 阅读 · 0 评论 -
最全的UIAlertController的使用
iOS 8的新特性之一就是让接口更有适应性、更灵活,因此许多视图控制器的实现方式发生了巨大的变化。全新的UIPresentationController在实现视图控制器间的过渡动画效果和自适应设备尺寸变化效果(比如说旋转)中发挥了重要的作用,它有效地节省了程序员们的工作量(天地良心啊)。还有,某些旧的UIKit控件也同样发生了许多变化,比如说Alert Views、Action Sheets、Po转载 2015-12-30 08:42:58 · 24187 阅读 · 1 评论 -
CBPeripheralManager学习笔记
@interface CBPeripheralManager : NSObject//CBPeripheralManager的几种状态typedef NS_ENUM(NSInteger, CBCentralManagerState) {// 初始的时候是未知的(刚刚创建的时候)CBCentralManagerStateUnknown = 0,//正在重置状态转载 2015-12-30 10:01:34 · 1685 阅读 · 0 评论 -
CLLocationManager定位服务
最近在ios8.0使用CLLocationManager定位服务,发现老不能定位,查看设置菜单中的项也是处于未知状态.想起之前都有一个弹出框提示用户是否允许定位,这次一直没有出现了.原来ios8.0下的定位服务需要申请授权了. 具体代码如下: if ([CLLocationManager locationServicesEnabled]) { self.locationManage原创 2015-12-30 10:04:14 · 405 阅读 · 0 评论 -
Xcode 编译 Undefined symbols for architecture x86_64:
可能会遇到这几种错误:Undefined symbols for architecture armv7Undefined symbols for architecture armv7sUndefined symbols for architecture arm64Undefined symbols for architecture i386Undefined symbols f原创 2016-01-18 08:36:27 · 3656 阅读 · 0 评论 -
iOS 开发如何获取当前的应用版本号
[1]概念iOS的版本号,一个叫做Version,一个叫做Build,这两个值都可以在Xcode 中选中target,点击“Summary”后看到。 Version在plist文件中的key是“CFBundleShortVersionString”,和AppStore上的版本号保持一致,Build在plist中的key是“CFBundleVersion”,代表build的版本号,该值每次b原创 2015-12-31 08:35:23 · 2581 阅读 · 0 评论 -
友盟统计的那些事
虽然在使用友盟的统计分析工具,可是你真的用熟了么?是不是还经常会遇到问题。就比如在渠道使用方面,你知道下边的这几个知识点么,我猜,没准儿你真的不知道。不服来看看。1、添加渠道只能在mainfest里设置?当然不是,除了在mainfest通过来设置渠道ID,你还可以在Activity中配置,只需在程序启动时的Activity中调用此接口:AnalyticsConfig.setChannel(原创 2015-12-31 09:53:18 · 4854 阅读 · 0 评论 -
3款流行的移动应用平台数据统计比较
目前市面上比较常见,使用比较多的移动应用统计平台大概有3、4家,国外比较流行的是Flurry,功能上非常全面;另外就是Google Analytics也推出了移动版,由于你懂的原因,在国内基本无法正常使用。而国内的统计分析平台目前比较有名的是友盟以及TalkingData。此外,一些应用市场,也有专门的统计分析工具,为其开发者平台上的应用开发者提供数据服务。我们将重点放在F转载 2015-12-31 11:36:38 · 3142 阅读 · 0 评论 -
iOS 开发 实现 将16进制字符串转换成16进制数
将16进制字符串转换成16进制数,返回NSData类型的数据- (NSData *)transformSignString:(NSString *)hexString{ int j=0; NSInteger desLength = hexString.length/2; if (hexString.length%2 !=原创 2015-12-31 15:55:33 · 1174 阅读 · 0 评论 -
CoreData的使用教程
Core Data 是 iOS 3.0 以后引入的数据持久化解决方案,其原理是对SQLite的封装,是开发者不需要接触SQL语句,就可以对数据库进行的操作.其编码方式和原理结构方面较为特殊,主要介绍在使用Core Data时遇到的各种问题以及对其核心原理进行解释.本人对于CoreData的理解不是太深,如有问题,请联系我,咱们共同探讨!参考资料: 1: iOS教原创 2015-12-17 08:20:11 · 644 阅读 · 0 评论 -
关于CoreData的多线程安全问题
CoreData中的NSManagedObjectContext在多线程中不安全,如果想要多线程访问CoreData的话,最好的方法是一个线程一个NSManagedObjectContext,,每个NSManagedObjectContext对象实例都可以使用同一个NSPersistentStoreCoordinator实例,这个实例可以很安全的顺序访问永久存储,这是因为NSManage原创 2015-12-16 14:17:47 · 714 阅读 · 0 评论 -
ShareSDK的使用---实现三方登陆及分享
使用的shareSDK,所以需要先到shareSdk官网注册一个开发者账号,免费的。http://mob.com/。然后新建一个应用程序,获取appID。1.必须添加的依赖库如下:SystemConfiguration.framework ,QuartzCore.framework ,CoreTelephony.framework ,libicucore.dylib ,li原创 2015-12-17 13:25:41 · 1086 阅读 · 0 评论 -
在iOS开发中使用静态库(Static Library)
引言:静态库是一个(.a)为后缀的文件,它由Xcode编译生成.并且,库中只能存放代码,如果编译静态库的工程中有其他资源是无法一起编译到静态库中.静态库有点类似Windows中的Dll文件.做过Windows桌面应用的人应该很熟悉.静态库出现的主要目的是为了让代码可以在多个地方重用.此篇主要记录在iOS中使用静态库时遇到的问题汇总和解决方案.转载 2015-12-17 13:58:36 · 1466 阅读 · 0 评论 -
iOS开发实现打电话、发邮件等外部应用的关联
1:打开Mail [csharp] view plaincopyNSString *recipients = @"mailto:ysy@flyrise.cn?subject=Hello from California!"; NSString *body = @"&body=It is raining in sunny Californ原创 2015-12-17 14:04:13 · 823 阅读 · 0 评论 -
iOS Block的使用
引言:Block是Apple在iOS4.0对Objective-C引入的新特性,通过Block可以增强代码的可读性和耦合性,减少非必要性的代理(Delegate)模式.Block是一个代码块,非常类似JavaScript里面的匿名函数,也可以叫做闭包,所以你也可以用匿名函数的方式来理解Block.本文Block的运行环境是在ARC模式下进行,非ARC的Block内存管理方面原创 2015-12-17 13:55:26 · 570 阅读 · 0 评论 -
iOS 对国际化语言的支持.
1 引入 app是针对国内市场的,但国内付费软件的状况不咋样,也就顺道卖卖全球市场了。针对这个需求,对app中的文字和app的软件名称做了国际化处理。具体步骤如下: 2 步骤 2.1中文国际化 1) 在项目的”supporting files”目录中右键”new file”然后在弹出窗口左侧选择IOS的resource项,在右侧就可以看到”Strin转载 2015-12-17 13:51:46 · 525 阅读 · 0 评论 -
使用Xcode7.0集成ShareSDK出现的问题及解决方法
集成过程遇到的问题工程跑不起来文件都按照官方文档拖拽进去、依赖的系统框架也都添加完毕,提示找不到引用框架。 出现此问题是因为虽然你把文件拖进去了,但工程仍找不到你引用框架所在的位置,我用的是xcode7.0测试版本,估计其他版本不会出现这个问题。解决办法如下: 找到工程中的这两项(默认是空的) 分别添加拖拽文件夹锁在的目录: Framework Search原创 2015-12-17 13:41:54 · 2442 阅读 · 0 评论 -
NSLayoutConstraint---AutoLayout的三种设置方式之—
AutoLayout是从IOS 6开始苹果引入来取代autoresizing的新的布局技术,该技术有三种设置方式,等下我来为大家一一叙述一下。在说三种设置方式前,我们先简单的说一下autolayout能够设置哪些行为。1.视图的大小(即视图的绝对大小)。2.视图的位置(视图相对于父视图或者兄弟视图的位置)。3.视图的对齐方式(相对于父视图或者相对于兄弟视图)。原创 2015-12-18 08:41:10 · 538 阅读 · 0 评论 -
UISegmentedControl的详细使用
初始化UISegmentedControl NSArray *segmentedArray = [[NSArray alloc]initWithObjects:@"1",@"2",@"3",nil]; UISegmentedControl *segmentedTemp = [[UISegmentedControl alloc]initWithItems:se原创 2016-01-19 18:39:45 · 626 阅读 · 0 评论 -
微信支付
APP端开发步骤说明IOS开发要点说明以下项目开发环境以Xcode6.0,运行环境为IOS7.0为例,说明其开发中需要的操作。1、项目设置APPID商户在微信开放平台申请开发APP应用后,微信开放平台会生成APP的唯一标识APPID。在Xcode中打开项目,设置项目属性中的URL Schemes为您的APPID。如图8.7标红位置所示。原创 2016-01-19 18:49:29 · 766 阅读 · 0 评论 -
iOS开发正则表达式的使用
一、什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分。它可以迅速地用极简单的方式达到字符串的复杂控制。 二、正则表达式的语法 看一个过滤纯数字的例子- (BOOL)validateNumber:(NSString *) textString原创 2015-12-19 13:18:50 · 406 阅读 · 0 评论 -
正则表达式
今天做JSP页面验证时,我想做一个文本框的值如果是非空的话,值必须为非负整数。当时在网上搜了一个正则表达式,结果用的时候老是达不到想要的效果。问了一朋友,才知道正则表达式在JS中用的时候,不能用“”(正则表达式在不同的地方用法不同,有待研究),且在JS中要写在//之间。正则表达式与值匹配时,有两种方式,一种是/^/d+$/.test(value) 返回值为true/false;另外一种是 /^转载 2015-12-19 13:20:51 · 446 阅读 · 0 评论 -
coredData的FrechRequest
我目前的理解,CoreData相当于一个综合的数据存储和管理中心,它支持sqlite,二进制存储文件两种形式的数据存储。而CoreData提供了存储管理,包括查询、插入、删除、更新、回滚、会话管理、锁管理等一系列数据库操作。另外,开发者还可以在xcode中使用 .xcdatamodel 扩展名的文件,以图形化的形式编辑数据模型,这里包括了Entities、Properties、At转载 2016-01-21 09:02:04 · 427 阅读 · 0 评论 -
UILabel自适应高度和自动换行
UILabel是iOS开发常用的控件。UILabel的属性需要了解,UILabel的特殊显示效果也需要我们掌握。UILabel自适应高宽度是很多初学者遇到的技术性难题。比如段文字,要让他完全地分行显示且要让后面的控件不被遮挡。这需要我们的UILabel能够自适应高宽,以便完全显示text的内容,后面的控件可以获取UILabel的起始坐标和宽高来重新设置frame来达到紧贴着UILabel显示而不被转载 2016-01-05 16:02:18 · 1170 阅读 · 0 评论