iOS/Mac
文章平均质量分 87
iOS/Mac
jimboRen
记录自己遇到的技术知识,防遗忘,与君共享。
展开
-
OC 学习记录随笔 之AutoreleasePool
总资料全是随笔 笔记 与 学习资料。没有规律。自动释放池数据结构class AutoreleasePoolPage : private AutoreleasePoolPageData 继承与AutoreleasePoolPageData, 经过综合后的主要结构为:class AutoreleasePoolPage{ magic_t const magic; __unsafe_unretained id *next; //能够存储的 obj 的位置的 指针 p原创 2022-06-14 11:33:38 · 290 阅读 · 0 评论 -
音视频笔记:ffmpeg常用命令行
主要用于记录自己主要用于记录常用ffmpeg的命令行。原创 2022-06-01 16:23:49 · 913 阅读 · 0 评论 -
iOS 签名认证机制回顾与解析
关于前置基础概念: 需要参考加密、签名、证书的基础概念和流程众所周知 iOS 无论开发和发布都需要一堆的证书,那么每个证书的作用是啥呢,它是怎么生成的呢,就是本章主要了解的内容。Apple 本身就是 权威 的CA证书的认证机构。一、证书列表开发中必须包含有以下几种证书:Mac上生成CertificateSigningRequest.certSigningRequest文件上传刚刚的.certSigningRequest文件 生成 ios_development.cer\ios_distribu原创 2022-01-19 18:39:28 · 2712 阅读 · 3 评论 -
加密、签名、证书的基础概念和流程
常用加密算法类型:加密算法:对称加密 (可逆)常用算法DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合;(已经不安全了,)3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高;AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高,支持128、192、256、512 (首选的算法)特点指加密和解密用的是同一个秘钥。原创 2022-01-19 18:08:11 · 2051 阅读 · 0 评论 -
OC 学习记录随笔 之APP 启动
总资料全是随笔 笔记 与 学习资料。没有规律。APP冷启动阶段主要可以分为3个阶段dyldruntimemaindylddyld 叫做 apple的动态链接器, 可以用来装载 Mach-O文件(可执行文件和动态库等)启动的时候 dyld做的事情装载app的可执行文件, 同时递归加载所有依赖的动态库当dyld 将所有可执行文件和动态库都加载完成后,会通知runtime进行下一步的处理runtimeruntime做的事情调用map_images()进行可执行文件内容原创 2022-01-12 21:30:50 · 1657 阅读 · 0 评论 -
OC 学习记录随笔 之内存管理
OC 学习记录随笔 之内存管理包括 NStimer 等内存相关的部分原创 2022-01-01 17:46:44 · 1530 阅读 · 0 评论 -
OC 学习记录随笔 之多线程
总资料全是随笔 笔记 与 学习资料。没有规律。常见多线程方法dispatch_queue_global_t qH = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0); 并发的dispatch_queue_t que = dispatch_queue_create("jimboqueue", DISPATCH_QUEUE_CONCURRENT /*DISPATCH_QUEUE_SERIAL*/); 并发和串行自由控制线程阻塞原创 2021-12-22 20:35:52 · 1875 阅读 · 0 评论 -
HTTP笔记
节选自《图解HTTP》一书方法列表持久链接HTTP 协议的初始版本中, 每进行一次 HTTP 通信就要断开一次 TCP 连接以当年的通信情况来说, 因为都是些容量很小的文本传输, 所以即使这样也没有多大问题。 可随着 HTTP 的普及, 文档中包含大量图片的情况多了起来。比如, 使用浏览器浏览一个包含多张图片的 HTML页面时, 在发送请求访问 HTML页面资源的同时, 也会请求该 HTML页面里包含的其他资源。 因此, 每次的请求都会造成无谓的 TCP 连接建立和断开, 增加通信量的开销原创 2021-12-21 10:39:47 · 683 阅读 · 0 评论 -
OC 学习记录随笔 之 RunLoop
总资料全是随笔 笔记。没有规律RunLoop 相关类CFRunLoopRefCFRunLoopModeRefCFRunLoopSourceRefCFRunLoopTimerRefCFRunLoopObserverReftypedef struct __CFRunLoop * CFRunLoopRef;//全部结构/*struct __CFRunLoop { CFRuntimeBase _base; pthread_mutex_t _lock; /* locke原创 2021-12-12 21:08:33 · 1572 阅读 · 0 评论 -
OC 学习记录随笔 之 Runtime
总资料全是Runtime 随笔 笔记。没有规律原创 2021-11-23 22:06:08 · 1667 阅读 · 0 评论 -
OC 学习记录随笔 之 Block
全是随笔 笔记。没有规律。部分为MJ老师的课程笔记.Blockblock 本质就是一个oc对象, 它的内部存有一个isa指针struct __block_impl { void *isa; int Flags; int Reserved; void *FuncPtr;};static struct __main_block_desc_0 { size_t reserved; size_t Block_size; void (*copy)(struct __main原创 2021-11-20 21:24:13 · 1992 阅读 · 0 评论 -
OC 学习记录随笔
全是随笔 笔记。没有规律。动态特性 VS 静态特性OC: 动态类型(id)、多态绑定([obj msgSend])、 多态加载(图片2x3x替换,动态加方法和变量)OC Alloc Init Newalloc 开辟内存,绑定指针isainit return(id)self,工厂构造方法,工厂设计,给开发者初始化数据提供重写入口内存检测僵尸对象zombie object :已经被系统回收的内存,但是没有置空, 随时可能被其他申请和覆盖.内存,进程分别有虚拟页面,在去访问物理内存。只有原创 2021-11-05 15:06:35 · 2001 阅读 · 0 评论 -
cocoa app 将NSLog 及crash 日志 输出到桌面
cocoa app 将NSLog 及crash 日志 输出到桌面此方法适用于 出问题的机器不能使用xcode 调试的时候,可以方便的将crash damp 输出到桌面查看。可以将以下代码 粘贴到AppDelegate.m 里面。- (void) redirectConsoleLogToDocumentFolder{ NSArray *paths = NSSearchPathForDi...原创 2019-01-18 17:58:06 · 393 阅读 · 0 评论 -
使用NSURLSessionDataTask进行大文件断点续传
因为需要做个下载项目需求,所以专门研究了下,大文件下载断点续传的功能,也比较了NSURLSession和AFN的优缺点。最终选用了NSURLSession + NSURLSessionDataTask来进行下载,由于只是demo,所以并没有对UI进行调整。首先demo实现环境为Mac环境,但是iOS同样可以参考,两者的差别只有UI控件的不同而已。demo中实现了的功能和技术下载文件的开始、暂停、继原创 2017-04-18 16:59:13 · 778 阅读 · 0 评论 -
Mac开发小白之路--- 定义全局快捷键(全局监听)
主要实现的功能是,当NSApp非active状态时候,右键app,会弹出筛选的window/View, 但是此时App不是活跃状态,所以在applicationDidFinishLaunching 定义全局的monitor,可以监控到app外边的键盘或者其他事件的点击,然后我们就可以关闭当前的右键菜单了- (void)applicationDidFinishLaunching:(NSNotific原创 2017-03-08 16:24:32 · 3465 阅读 · 0 评论 -
关于一台电脑多个git账号的配置
具体步骤首先cd到 ~/.ssh 路劲下面查看有没有config文件存在,如果没有的话 touch 创建一个 touch config下文中有三个账号分别对应的是三个不同的git服务器,最终配置好的config文件的代码如下Host git@oss.navercorp.com HostName git@oss.navercorp.com User ren.jinbo Iden...原创 2019-11-22 15:43:40 · 325 阅读 · 0 评论 -
ios GCD的实际串行和并行请求api调用
*前言:最近写的app需要综合用到api的串行和并行, 所以整理了下使用的api的情况。 主要用到的GCD方法:dispatch_group_leave, dispatch_group_enter, 以及semaphore的运用。*1. 信号量串行顺序请求。(semaphore)code: - (void)test { dispatch_group_t group = d...原创 2018-09-07 16:03:52 · 1286 阅读 · 0 评论 -
NSURLSessionTask 上传图片 请求超时
注意用如下 request.timeoutInterval = 20.f; 设置请求超时时间是没有用的,实际返回的超时时间仍然是10秒。如果上传图片的超时10秒, 同时并发上传很多张图片,容易导致部分请求超时,比如同时并发上传50张图片,差不多有20张是返回请求超时的 。 NSMutableURLRequest *request = [[NSMutableURLRequest alloc...原创 2018-09-07 16:58:32 · 1859 阅读 · 0 评论 -
Mac/iOS crash或者地址符号解析——工具篇
本文主要是通过MAC app 来进行分析的,iOS 有细微差别,会在后面具体指出。1.符号化目的符号化的目的就是将下图最上端的堆栈变成最面下面的堆栈的过程:其中 DSYMTest 为测试app的名字在笔者实际工作中还遇到了两种部分符号化的堆栈,如下:符号化过程出错可能会将 错误的符号化成 _mh_execute_header ,所以这里不妨手动用下面的方法再次符号化一次手动在...原创 2019-05-14 15:55:38 · 6198 阅读 · 1 评论 -
Mac/iOS手动输出 调用堆栈,并符号化
如果想在代码里面调用某个方法的时候输出调用堆栈的话,我们一般这样做。直接调用这个方法 [NSThread callStackSymbols];DEBUG 或 这 RELEASE 直接运行就可以输出下面的调用堆栈0 DSYMTest 0x0000000100000f66 -[ViewController getNowBacktra...原创 2019-05-14 18:27:58 · 2257 阅读 · 1 评论 -
iOS字典转json 包含字段nsstring
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:self.viewModel.params options:NSJSONWritingPrettyPrinted error:nil]; NSString *jsonString = [[NSString alloc]initWithData:jsonData encodi原创 2016-02-18 22:27:45 · 652 阅读 · 0 评论 -
CocoaPod 手动升级本地三方库的版本号
如果本地pod search 三方库 一直未显示git 中的最高版本。pod 升级和 pod setup后都一直不能搜索到git上的最新版本,那么这个教程绝对适合你。First. 问题描述拿ZFDownload 这个库举例。 终端输入:pod search ZFDownload 后显示以下图片 明显只能下载1.0.2的版本,但是我们需要的代码只在1.0.3上有,那么怎么...原创 2018-05-24 10:38:02 · 2684 阅读 · 0 评论 -
github clone 代码到本地全步骤
由于最近仓库由gitLab转到github,所以可以把代码拉到家里的电脑上来了!一、首先生成SSH密钥:1.$ cd ~/.ssh 查看是否有文件存在 如果没有密钥则不会有此文件夹,有则备份删除 2.$ssh-keygen -t rsa -C 8122XXX@qq.com 后面的是github注册的邮箱账号 回车后会叫你输入github的用户名和密码原创 2016-02-29 21:12:46 · 35618 阅读 · 0 评论 -
iOS 代码跳转 openURL 打开系统页面
[[UIApplication sharedApplication] openURL:url]; 通过给url不同的值,可以实现调用系统自带 电话/短信/邮箱/浏览器/…1、调用 电话phone [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@”tel://800888”]]; 拨打电话之后不跳转回app [转载 2016-03-02 22:53:26 · 1219 阅读 · 0 评论 -
iOS 开发 Xcode必备插件
Xcode插件神器作为iOS开发人员,不了解些常用的插件,不使用插件,开发效率怎么会够快呢?那么问题来了,现在的你,使用过哪些xcode插件?如果没有使用过插件,那么很遗憾,您错过了很多好用的工具!插件管理器既然使用xcode插件,就应该想想有没有插件管理器呢?是的,有一个灰常有名的插件管理器叫Alcatraz,关于这个插件管理器如何安装,请参考官方文档如果您已经安装过这个插件管理器,那么恭喜您可以转载 2016-02-27 22:40:47 · 923 阅读 · 0 评论 -
每个Xcode开发者应该知道的七个使用技巧
本文由CocoaChina--lingkongzi(github)翻译作者:Bart Jacobs原文链接:Seven Xcode Tricks Every Developer Should Know工欲善其事,必先利其器。对一个iOS开发者来说,这就意味着对Xcode的熟练掌握程度。Xcode是一个学习起来有点难度的软件,下面的这些技巧或许可以显著的提高你转载 2016-03-05 23:18:05 · 518 阅读 · 0 评论 -
ios 代码跳转 定位设置 系统设置 openURL
判断了关闭定位的两种情况。1.在设置->隐私->定位处关闭的全局定位2.在设置->QQ->定位处关闭的单个软件的定位功能``` if ([CLLocationManager locationServicesEnabled]) { if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) {原创 2016-03-02 23:01:22 · 2579 阅读 · 0 评论 -
iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象
基本使用:创建一个user defaults方法有多个,最简单得快速创建方法:NSUserDefaults *accountDefaults = [NSUserDefaults standardUserDefaults];添加数据到 user defaults:[accountDefaults setObject:nameField.text forKey:UserDefaultNameKey];也转载 2016-02-18 22:15:27 · 693 阅读 · 0 评论 -
强迫症的 Mac 设置指南,如何配置一个高效的 Mac 工作环境
转自,看原文猛戳这里 文章太长,只摘抄了目录,方便自己以后查找 Table of Contents OS X功能键 全键盘控制 Spotlight 快捷键 输入法快捷键 其他快捷键 设置 Trackpad 轻点来点按 语音 词典 Dock Position 更改 Caps Lock 键为 Control 键 Remove all Dock icons[OCD] 重置 La转载 2016-02-18 22:02:16 · 927 阅读 · 0 评论 -
iOS UITableView相关成员方法详解
1.UITableView的datasource实现://回调获取每个section中的cell的行数- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section//回调获取每个uitableviewcell,只有当需要显示的cell在table的可视区域内才被回调- (UIT转载 2016-03-03 20:33:39 · 561 阅读 · 0 评论 -
iOS 自定义cell侧滑删除、编辑等按钮
iOS自定义cell侧滑删除、编辑等按钮,用的是一个网上大神封装好的类,直接引用,就ok了,简单粗暴,适配支持iOS9.2、Xcode7.2 要下载源码的请猛戳这里下载下面是效果图ViewController.m中得方法//// ViewController.m// cell侧滑demo//// Created by renjinbo on 15/12/28.// Copyrig原创 2016-01-09 21:27:00 · 4218 阅读 · 0 评论 -
swift 数组转字符串(joinWithSeparator)
swift中的 array 转 string 就这个joinWithSeparator这个函数,找半天都没有找出来,快疯了,和OC中的componentsJoinedByString是同一个意思 let numArray = ["1","2","3"] let numString = numArray.joinWithSeparator(":") // "1:2:3"原创 2016-03-31 23:20:32 · 4777 阅读 · 0 评论 -
VVDocumenter Xcode快速添加注释插件
关键字:VVDocumenter 代码类库:其他(Others) GitHub链接:https://github.com/onevcat/VVDocumenter-Xcode 本站下载地址,点击这里:猛戳这里 很多时候,为了快速开发,很多的技术文档都是能省则省,这个时候注释就变得异常重要,再配合Doxygen这种注释自动生成文档的,就完美了。但是每次都要手动输入规范化的注释,着实也麻烦,但有转载 2016-02-24 20:31:59 · 487 阅读 · 0 评论 -
iOS 用QuickLook浏览文件和图片
iOS 利用QuickLook查看PDF、WORD、PPT等文件和图片.h文件中定义的urlString用来接收上个页面传过来的url,无论网上url还是本地url均可以#import <UIKit/UIKit.h>#import <QuickLook/QuickLook.h>@interface QuickLookNotImageVC : UIViewController@property原创 2016-02-24 22:51:07 · 1130 阅读 · 0 评论 -
iOS 日常记录,小知识点
searchResultsTableView 的contentSize 错误问题//修复 contentSize问题-(void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView{ [tableVie原创 2016-12-20 16:35:39 · 460 阅读 · 0 评论 -
oc 算法:冒泡排序/快速排序/选择排序
最近温习了下算法,顺便把代码记录下来冒泡排序- (void)sortByBubble { NSMutableArray *array = [NSMutableArray arrayWithArray:@[@2, @1, @4, @8, @7, @3, @9]]; for (int i = 0; i < array.count - 1; i ++) { for (int原创 2016-12-22 18:56:44 · 883 阅读 · 0 评论 -
iOS 最新版 CocoaPods 的安装流程
iOS 最新版 CocoaPods 的安装流程原文:http://www.cnblogs.com/zxs-19920314/p/4985476.html?utm_source=tuicool&utm_medium=referraliOS 最新版 CocoaPods 的安装流程1.移除现有Ruby默认源$gem sources --remove https://rubygem转载 2016-02-18 21:53:14 · 759 阅读 · 0 评论 -
iOS 检测内存泄漏Analyze-Potential leak of an object stored into 'soundFileURLRef'
由于iOS中CF框架需要自己释放内存,所以ARC的自动释放内存就不管用了,需要我们自己释放,需要使用CFRelease(<#CFTypeRef cf#>)这个方法来手动释放内存. 以下三个案列是自己在自己的项目中截取的.案例一:如上图可以看到,已经有内存警告了, 75行和90行分别引用计数加1变成了2 ,所以需要我们手动释放内存.CFRelease() 解决方案:加上95行的代码就将引原创 2016-12-13 10:49:52 · 2389 阅读 · 0 评论 -
Swift 数组中 Map,FlatMap,Filter,Reduce的使用
Map map函数能够被数组调用,它接受一个闭包作为参数,作用于数组中的每个元素。闭包返回一个变换后的元素,接着将所有这些变换后的元素组成一个新的数组 1. 比如我们有一个这样的需求遍历一个数组中所有的元素,将每个元素自身与自身相加,最后返回一个保存相加后元素的数组(-_-原谅我这表达能力,下面用代码阐述) 如果我们不使用map函数,那么代码如下let numbers = [1,2,3]va转载 2016-04-17 20:45:11 · 961 阅读 · 0 评论 -
iOS7实现带文本输入框的UIAlertView及获取TextField文本内容
if (customAlertView==nil) { customAlertView = [[UIAlertView alloc] initWithTitle:@"自定义服务器地址" message:nil delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil nil]; } [customAler转载 2016-02-27 23:13:32 · 5941 阅读 · 0 评论