IOS
文章平均质量分 70
煮酒Shae
这个作者很懒,什么都没留下…
展开
-
IOS 相机和相册的调用UIImagePickerController
文章目录UIImagePickerController类常用属性与方法UIImagePickerControllerDelegate代理协议举例准备工作代码在App开发时,当我们需要调用摄像头拍照或者希望从相册中选择一张照片时,都可以使用UIImagePickerController类来完成。UIImagePickerController类把从iOS设备中获取图片的操作进行了统一封装,使用图片来...原创 2019-08-06 15:58:54 · 2762 阅读 · 0 评论 -
常用缩写
常用缩写注意:程序中使用单词缩写原则:尽量不要用缩写,除非该缩写是约定俗成的。资源ID命名缩写ButtonbtnLayoutViewlvRelativeViewrvTextViewtvImageButtonimgBtnImageViewivCheckBoxchkRadioButtonrdoBtnEditTextedtTxtProgressBarproB...转载 2019-12-12 16:54:42 · 149 阅读 · 0 评论 -
present 模态跳转跳出和背景透明
- (IBAction)setTenantBtn:(UIButton *)sender { TenantViewController *tenantViewController=[[TenantViewController alloc]init]; //tenantViewController.view.backgroundColor=[UIColor colorWithRed:1...原创 2019-12-13 10:06:19 · 1680 阅读 · 0 评论 -
ios 网络socket:及时通讯底层原理详解二
文章目录001--socket连接1.创建socket2.发送数据001–socket连接c语言的实现。导入c语言的socket头文件,这不是iOS 特有的,是跨平台的。#import <sys/socket.h>还需要ip和端口相关的头文件#import <netinet/in.h>#import <arpa/inet.h>搜索socket...原创 2019-12-20 10:14:27 · 208 阅读 · 0 评论 -
FIRST二:日志文件
文章目录1、应用场景:2、相关知识:具体实现:1、应用场景:对于真机,日志没法保存,不好分析问题。所以有必要将日志保存到应用的Docunment目录下,这样才能取出分析。2、相关知识:日志输出,分为c的printf和标准的NSLog输出,printf会向标准输出(sedout)打印,而NSLog则是向标准出错(stderr),我们需要同时让他们都将日志打印到一个文件中。例子:freop...原创 2019-10-01 17:27:40 · 213 阅读 · 0 评论 -
iOS 密码学一
文章目录MD5加盐和HMAC加密部分一个故事讲完https对称加密的经典算法2种加密的方式终端操作加密的命令MD5加盐和HMAC123+一堆乱七八糟的东西,前后中间随便加,让别人无法直接破解123盐的不足之处:1.这个盐是固定的,只要是开发者都得知道这个盐(iOS端,Android端,服务器端)如果泄漏出去就能破戒掉。2.盐写死了,1.0写入已经对密码加密了,2.0版本如果要改,就不能改了...原创 2020-02-13 17:08:51 · 418 阅读 · 0 评论 -
iOS 不同屏幕适配
文章目录不同手机不同手机前提条件:xib创建的要关闭autosize设计师给出的效果图应以iPhone6P(或8p)为基准。什么时候使用这个宏?所有控件的尺寸、x值y值,cell的高度,文字的字体大小如何使用这个宏?在“Supporting Files”文件夹中的"PrefixHeader.pch"编写代码:#define SYRealValue(value) ((value)...原创 2019-12-15 17:20:20 · 507 阅读 · 0 评论 -
IOS 项目目录结构
参考博客:https://www.jianshu.com/p/1e4ef2e6b1dd开发者在开始搭建项目的时候,或者整理项目的,是否有迷茫该如何搭建才最为合理,如何搭建才会清晰明了,下面笔者将介绍两种结构,任君挑选。一.适用于多人联合开发,比较复杂的项目目录结构如下:AppDelegateModelsMacroGeneralHelpersVendorsSectionsRes...转载 2019-12-12 10:33:03 · 496 阅读 · 0 评论 -
ios 网络socket一:及时通讯底层原理详解
文章目录一.端口号TCP和UDP应用场景,或者什么情况采用什么协议socket一.端口号客户端访问服务器,通过ip地址找到服务器如下的:192.168.31.180,是个内网地址,在世界上是有和他重复的。通过端口选择服务:如访问网页:192.168.31.180:80,访问电子邮件的服务:192.168.31.180:110。刚刚看到的80,110就是端口号。不需要记,只需要有相应的概念。其实...原创 2019-12-07 23:02:57 · 899 阅读 · 0 评论 -
iOS 密码学二
文章目录Hash用途密码加密(Hash)用户登陆密码需要加密加密算法-》运用-〉安全Hash哈希算法,哈希函数,散列是一个东西Hash的特点:1.算法是公开的2.对相同数据运算,不同平台上,用的同样的算法,得到的结果是一样的。3.对不同的数据进行运算,如MD5得到的结果都是32个字符长度的字符串。‘123456’加密后32个字符。一张图片,一个电影的数据加密后也是32个字符。4...原创 2020-02-16 17:49:14 · 258 阅读 · 0 评论 -
iOS根视图切换之后,上一个根视图如何销毁
一般APP首次启动,会有登录界面,需要在AppDelegate里设置rootViewControllerself.window.rootViewController = loginVC;//登录成功后,切换根视图,上一个根视图自动释放UITabBarController *tabbar = [[UITabBarController alloc] init];[UIApplication...转载 2019-12-12 13:21:20 · 920 阅读 · 0 评论 -
语音播报库AVFoundation
iOS7.0之后新添加了一些新的功能,里面就有系统自带的语音播报库, 需要 导入系统的AVFoundation 库#import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewController ()<AVSpeechSynthesizerDelegate> /...转载 2019-12-13 09:05:11 · 464 阅读 · 0 评论 -
iOS UIButton实用汇总
- (void)LimitedCountBtnInit{ // self.LimitedCountBtn.layer.borderColor=[UIColor blueColor].CGColor; CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB(); CGColorRef color = CGColor...原创 2020-04-13 20:36:57 · 798 阅读 · 0 评论 -
iOS 音视频录制之播放视频,AVPlayer可播放本地视频和在线视频
文章目录在开发中,单纯使用AVPlayer类是无法显示视频的,要将视频层添加至AVPlayerLayer中,这样才能将视频显示出来,所以先在ViewController的@interface中添加以下属性@property (nonatomic ,strong) AVPlayer *player;@property (nonatomic ,strong) AVPlayerItem *play...转载 2020-03-02 16:58:21 · 23605 阅读 · 0 评论 -
iOS json
文章目录iOS开发使用NSJSONSerialization、JSONKit、SBJson三种方式解析Json数据。JSON数据解析可以使用苹果自带的NSJSONSerialization方式,也可以使用第三方框架,比如JSONKit、SBJson、TouchJSON等,框架的使用方式比较简单,但性能比ios原生方式差很多,建议使用原生方式。如何在ARC下使用MRC的类库:如果你的工程是M...原创 2020-03-05 17:56:29 · 128 阅读 · 0 评论 -
iOS 音视频录制之录制视频,UIImagePickerController拍照录视频选取视频图片,AVFoundation
文章目录UIImagePickerController拍照录视频选取图片思路读《疯狂iOS讲义(下)》笔记UIImagePickerController拍照录视频选取图片思路list文件需要添加:<key>NSCameraUsageDescription</key> <string></string> <key&g...原创 2020-02-27 21:04:36 · 554 阅读 · 0 评论 -
Prefix Header文件的简单使用
原创 2020-02-27 17:20:27 · 815 阅读 · 0 评论 -
iOS 利用xib对控件添加约束 适配屏幕
约束,就是对控件的限制条件,限制条件的作用就是为了让我们搭建页面适应不同的屏幕,当然也是页面的兼容性,兼容多个屏幕下面切入正题,如何为控件添加约束。添加约束主要用到下面的三个部分。从左到右:align、pin、resolve auto layout issues。1、align第一个模块主要是对齐的,那么对齐就要多个控件对齐,譬如:两个字空间左对齐、下对齐、X轴对齐、字控价和父控件中心...转载 2020-03-06 18:46:43 · 1540 阅读 · 0 评论 -
iOS 音视频录制之API选择,音频录制和播放
文章目录音视频的API选择AVAudioRecorder实现录制通过xcode找到真机调试的沙盒路径文件代码播放录音AVAudioPlayer微信录音实现(长按录音)音频播放代码音视频的API选择1.上层API对于仅仅想直接播放个音频或视频的需求,没有必要使用底层的API,这些API可以简单的直接调用一些类似start,stop,设置一些资源文件路径就可以做录制与播放.视频播放:AVPla...原创 2020-02-25 17:42:35 · 1182 阅读 · 0 评论 -
iOS直播APP流程和相关技术介绍
文章目录直播APP流程技术1.音视频采集2.视频过滤3.音视频编码4.音视频推流5.流媒体处理数据6.拉流7.音视频解码8.播放9.聊天互动流媒体知识核心概念直播APP流程技术把主播录制的视频,推送到服务器,在由服务器分发给观众观看。推流端(采集、美颜处理、编码、推流)、服务端处理(转码、录制、截图、鉴黄)、播放器(拉流、解码、渲染)、互动系统(聊天室、礼物系统、赞)1.音视频采集A...原创 2020-03-04 12:25:11 · 1285 阅读 · 1 评论 -
iOS crash分析
文章目录异常的捕捉埋点开发iOS应用,解决Crash问题始终是一个难题。Crash分为两种,一种是由EXC_BAD_ACCESS引起的,原因是访问了不属于本进程的内存地址,有可能是访问已被释放的内存;另一种是未被捕获的Objective-C异常(NSException),导致程序向自身发送了SIGABRT信号而崩溃。其实对于未捕获的Objective-C异常,我们是有办法将它记录下来的,如果日志...原创 2020-03-18 15:39:06 · 361 阅读 · 0 评论 -
iOS block详解
文章目录概述Block的定义与使用实际开发中的定义block与外界变量截获自动变量(局部变量)值默认情况__block修饰的外部变量Block的copy操作Block的存储域及copy操作__block变量与__forwarding防止Block循环引用Block的使用示例Block作为变量(Xcode快捷键:inlineBlock)Block作为属性(Xcode快捷键:typedefBlock)...原创 2020-03-08 17:05:42 · 534 阅读 · 0 评论 -
iOS中的HOOK技术
文章目录简介fishhook介绍主要信息结构体主要接口实现Method SwizzleRuntime 术语的数据结构SELidClassMethodIvarIMPCache方法交换(Method Swizzling)macoView简介OC语言是动态的C语言是纯静态的,C函数的调用是通过函数地址,函数地址在编译时期就必须确认。如果要hook,要直接修改二进制,要直接去写汇编代码。fishh...原创 2020-03-03 17:25:13 · 1891 阅读 · 0 评论 -
iOS Flutter混编环境配置(最新)
文章目录一、创建flutter module二、添加原生app对flutter的依赖使用注意重新生成podhelper.rbflutter是什么就不多做介绍了,目前使用纯flutter进行开发的大型项目还比较少,多数试水的还是打算和现有的原生代码进行混编,即将flutter页面嵌入到原生app中。而网上大部分都是讲安卓和flutter混编的经验,有iOS和flutter混编的也是比较老的方法,现...原创 2020-03-20 15:37:18 · 3601 阅读 · 0 评论 -
iOS常用RGB颜色的色值表
原创 2020-05-29 16:36:42 · 956 阅读 · 0 评论 -
IOS UIGestureRecognizer 手势的实用汇总
文章目录UITapGestureRecognizer 的使用,判断点击哪个控件UITapGestureRecognizer 的使用,判断点击哪个控件UITapGestureRecognizer 的使用,判断点击哪个控件说明:_backgroundImg 和_userHeaderImg都在_headerView上,给_headerView添加手势,判断用户点击是在_userHeaderImg还是_backgroundImg上,一个是修改头像,一个是修改背景图//添加手势 UITapG原创 2020-06-04 21:42:43 · 298 阅读 · 0 评论 -
iOS视图切换bringSubviewToFront:和sendSubviewToBack:
文章目录简介实战简介将一个UIView显示在最前面只需要调用其父视图的 bringSubviewToFront()方法。将一个UIView层推送到背后只需要调用其父视图的 sendSubviewToBack()方法。如:[A bringSubviewToFront:B]; B视图在A视图上面[A sendSubviewToBack:B]; B视图在A视图下面实战[self.view...原创 2020-04-16 20:02:29 · 10635 阅读 · 0 评论 -
iOS开发,不推荐自己单独建xib关联一个UIView
我们创建UIView时,默认是没有xib选项的,那么如何让xib跟UIView关联?还有,为什么创建时默认没有xib,苹果这样做肯定有他自己的想法吧。目前发现xib关联UIView,UIImageView的userInteractionEnabled设置无效。...原创 2020-06-04 21:41:05 · 192 阅读 · 0 评论 -
iOS UIAlertController使用汇总
文章目录1、UIAlertController显示普通的Alert2、UIAlertController显示带文本输入的的Alert3、UIAlertController显示ActionSheet1、UIAlertController显示普通的Alert- (IBAction)showAlert:(UIButton *)sender { //显示提示框 //过时// UIAlertView *alert = [[UIAlertView alloc] initWithTitle:原创 2020-05-17 14:31:54 · 2998 阅读 · 0 评论 -
OC语言基础十四:Runtime
文章目录简介使用动态获取对象的类型简介Runtime 是一套由C语言API组合成的Runtime库,偏底层,执行效率也会高一些。Runtime 会尽可能把代码的执行决策推迟到运行时,一段代码真正的执行结果可能要到运行时才能真正体现出来OC是动态语言,OC代码最终都会转换成底层Runtime的代码如:[person setAge:10];转换成objc_msgSend(person,@s...原创 2019-05-05 17:00:16 · 172 阅读 · 0 评论 -
OC语言基础十二:深浅拷贝
文章目录说明浅拷贝深拷贝使用copy不可变拷贝mutableCopy可变拷贝说明浅拷贝浅拷贝只进行对象地址的拷贝,效率高,但是一旦person1操作了Person对象,person2指向的对象空间也会发生内容上的改变。深拷贝深拷贝,直接去内存中开辟一个新的对象空间的地址,然后把原先要拷贝的对象内容全部搬到副本空间里面来,也就是创建一个对象的副本实体。效率低,但是Person1和Per...原创 2019-05-05 11:14:03 · 293 阅读 · 0 评论 -
OC语言基础七:字符串数据类型NSString
文章目录不可变字符串一:创建1.C语言字符串转换成OC字符串对象2.格式化字符串二:拼接和分割拼接分割字符串比较清楚系统提供了那些接口,可以实现哪些操作。不可变字符串一:创建指的字符串的内容和长度不可变NSString *string=[[NSString alloc]init];是没有意义的,因为这样取开辟出来的不可变对象空间,后续对字符串内容的添加是不可能完成的,因为字符串的内容和长...原创 2019-04-18 20:43:51 · 755 阅读 · 0 评论 -
OC语言基础一:OC方法调用机制,new方法实现原理
文章目录OC方法调用机制new方法实现原理野指针内存溢出内存泄漏alloc和initOC方法调用机制OC有两种方法Person *person=[Person new];[person eat];//对象方法[Person personWithName:@"Tom"];//类方法对象方法:要用对象指针调用类方法:类方法要用类名调用OC方法调用实际上就是在给接受者发送消息。[接收...原创 2019-04-07 15:52:32 · 625 阅读 · 0 评论 -
OC语言基础十三:JSON数据,KVC键值编码
文章目录JSONJSON字符串使用KVC键值编码JSON网络数据传输中,有2种数据格式最常用。JSON和xml数据。JSON数据的数据结构简单,冗余数据少,网络数据传输的时候JSON数据比xml数据的传输快。但是JSON数据的结构相对简单,相比于xml来讲可读性要差一些。JSON字符串{}的是字典,[]的是数组将上面几种,表示成清晰可见的格式。字符串要用引号来引出,系统才能识别当前...原创 2019-05-05 15:22:35 · 242 阅读 · 0 评论 -
OC语言基础六:self和super
文章目录OC语言的self相当于c++语言的this,是一个指针,随着类的创建默认被创建出来。self和super的使用范围是在类的内部,都只能用来调用方法。+(instancetype)person{ Person*person=[[Person alloc]init]; //也可以写成 Person*person=[[self alloc]init]; //不能写成 se...原创 2019-04-18 20:43:35 · 220 阅读 · 0 评论 -
OC语言基础九:OC字典
文章目录字典的结构不可变字典创建如何通过key查找相应的value通过value查找相应的key查找所有的key,所有的value字典的嵌套使用字典的结构字典是无序集合,是由一系列key ,value键值对组成的。字典在查找数据的时候和数组不一样,数组查找数据是通过索引也就是下标,而且数组是有序的。而字典是无序的,所以要根据key去查找对应的value,而我们的Key必须确保是唯一的,也就是一...原创 2019-04-22 15:12:28 · 1934 阅读 · 0 评论 -
OC语言基础四:OC自动内存管理
文章目录自动引用计数:ARC,是我们Xcode默认支持的一种内存管理方式。原则:1.当使用一个强指针指向一个对象时,就会引起引用计数+1,这个指针就拥有了这个对象的绝对使用权。2.如果没有任何强指针指向这个对象时,对象在出了最近的大括号(作用域),对象就会被立即释放。重写dealloc方法,监听对象什么时候被销毁:-(void)dealloc{//ARC下禁止调[super deal...原创 2019-04-13 15:28:27 · 191 阅读 · 0 评论 -
OC语言基础八:OC数组
文章目录不可变数组创建取出数组中元素遍历数组OC数组是oc集合数据类型中的一种,是有序集合,其他的两个是oc字典和set,是无序集合。不可变数组创建1.initWithObjects方法结尾有个nil,是添加元素结束的标志,不作为真实的元素出现,也不会影响数组中元素的个数。注意:基本数据类型不可以直接放入到OC数组,这是OC数组和C语言数组的一个区别。但是可以通过NSNumbe把基本数...原创 2019-04-22 10:17:09 · 2554 阅读 · 0 评论 -
OC语言基础十:OC文件操作
文章目录主要的类NSFileManager创建文件管理类单例对象:创建目录定义带参宏主要的类NSFileManager:文件管理类,当我们要去创建目录,或者操作目录中某些文件的时候,或者想查看某个目录或者文件的属性。NSFileHandler:如果操作对象是某个文件,并在里面进行文本的编辑。NSFileManager创建文件管理类单例对象:NSFileManager *fileMang...原创 2019-04-25 16:37:48 · 2352 阅读 · 0 评论 -
OC语言基础三:OC手动内存管理
文章目录OC内存管理原则OC手动内存管理又叫做手动引用计数,简称为MRC,IOS4.0之前使用的一种内存管理方式,之后提出了ARC。有了ARC我们可以把所有的精力放在项目的开发之上,系统给我们自动完成内存管理。OC内存管理原则只要使用以alloc,new, copy,mutableCopy, retain(这五个单词开头的方法)将一个对象的地址赋给一个指针变量时,该对象指针就拥有这个对象的绝...原创 2019-04-11 21:47:23 · 229 阅读 · 0 评论