- 博客(37)
- 资源 (2)
- 收藏
- 关注
原创 iOS面试题(多线程篇)
1、进程和线程的区别?(1)进程是个静态的容器,可以理解为正在执行的应用程序实例,它里面容纳了很多个线程,线程则是一系列方法的线性执行路径(CPU调度的基本单位)。(2)进程拥有独立的资源空间(资源分配基本单位),共享起来比较复杂,常使用IPC方式进行同步,同步起来简单,线程间共享所属进程空间,资源共享简单但同步复杂,常使用加锁等方式进行同步。(3)进程崩溃不会影响其他进程,一个线程崩溃则会导致整个进程崩溃2、iOS中多线程有几种实现方式?分别有什么区别?(1)pthread(POSIX Thre
2021-08-29 22:34:45
3220
原创 Mach-O文件初识
一、什么是Mach-O文件?Mach-O 即 Mach Object,它是一种文件格式(Mac OS 二进制可执行文件)。二、Mach-O 文件内容详解Mach-O 二进制文件由段(segment)组成,可通过 MachOView 查看。一个segment由零个或者多个section组成,每个section里面会放置不同的数据或代码。segment需要页对齐(Mac OS 页大小4k,iOS 页大小16k),section不一定是页面对齐的。segment、section命名规则:(1)se
2021-05-28 14:53:43
581
原创 iOS汇编入门必备(指令篇)
一、汇编中指令和伪指令的区别?指令:机器码助记符,每条指令会生成机器码,由CPU读取执行。伪指令(伪操作):没有与之对应的机器码,非可执行指令,需要汇编器来解释。二、OS X 伪指令:所有汇编程序伪指令(GUN汇编器通用伪指令)的名称都是以‘.’开头。名称大多数不区分大小写,通常使用小写字母表示。1、定义数据伪指令(下面数据类型空间大小为arm64下的size).byte // 定义1个字节大小的变量 .short
2021-05-12 14:15:12
624
原创 Swift面试题2021(附答案)
1、Swift和Objective-C有什么区别?1)Swift是强类型(静态)语言,有类型推断,Objective-C弱类型(动态)语言2)Swift面向协议编程,Objective-C面向对象编程3)Swift注重值类型,Objective-C注重引用类型4)Swift支持泛型,Objective-C只支持轻量泛型(给集合添加泛型)5)Swift支持静态派发(效率高)、动态派发(函数表派发、消息派发)方式,Objective-C支持动态派发(消息派发)方式6)Swift支持函数式编程(高阶函
2021-04-29 10:43:36
13836
1
原创 iOS App Clips学习笔记
一、什么是App Clip?App Clip是一个App的轻量版,用来提供一些用户所需功能,我们可以把它看成苹果的小程序。它不需要下载就直接能打开。这样即可达到不下载完整版APP便可体验APP的部分功能,即用即走。二、App Clip触发场景扫描NFC标签或者二维码点击来自Siri中基于位置的建议点击地图app中的链接点击网站上智能推荐应用横幅点击通过“信息”App分享的链接三、App Clip 体验准备开发环境:Xcode12 beta,iOS14系统四、创建App Clip创
2020-07-12 20:57:51
3526
原创 2020新的开始-前路漫漫
2019:难忘的2019,这一年发生了很多,自己做的第一款App成功上线App Store了,想挣钱,但是不了解市场,可喜的迈出了第一步。家庭角色发生了变化,升级当了爸爸,有了可爱的小公举。工作上,上半年主要都在上包没啥可说的,下半年学习了Java。由于国家监管,企业转型,公司业务发生了调整。有得必有失,或许这就是缘分吧!2020:新的一年,新的开始。路漫漫其修远兮,吾将上下而求索!努力,珍...
2020-01-07 10:20:51
208
原创 2019开工大吉
2018年终总结:回顾《2018新起点-脱贫计划》,仔细对比了一下自己2018年的年度计划,完成度不到20%,结果是很失败的。主要是因为目标设置不合理,自我驱动力下降,拖延症越来越严重。2018年在工作中的收获还是有目共睹的。主要负责React Native APP开发和Python数据抓取,数据的抓取过程中用到了iOS逆向,做过一次数据爬取的分享(由于没有准备的很充分,结果不是很成功)。不足之...
2019-02-11 14:26:17
632
原创 iOS11.3.1不完美越狱之Electra
前几天(7月6日)Electra Team在Twitter上发布了iOS11.2-11.3.1可用的越狱工具,之前一直在关注iOS11.3越狱的相关信息。本来今天想看下有没有最新的iOS越狱信息,发现它已经发布了,抑制不住心中的喜悦。今天就尝试了一下,不完美越狱(关机或重启之后需要重新越狱)成功!下面介绍一下Electra(github传送门)不完美越狱的两种方式:Non Dev Account、...
2018-07-09 19:35:03
11278
1
原创 UIView Category 神坑之WKWebView显示一半
最近在工作中遇到一个问题,现象是WKWebView加载完页面后,显示不全,而且只显示在左边,看了一下x,y的值都是负的。同样的WKWebView,在新建的Demo中显示正常。这就让我很恼火啊!边调边网上找解决方案啊!看到网上有部分人,因为这种原因没有找到解决方案,不得不换回UIWebView。如果你们看到这篇文章了,还是回到WKWebView的怀抱吧!特此记录一下,分享给需要的人!废话不多说,直接...
2018-07-08 22:24:01
2475
2
原创 iOS逆向必备绝技之ipa重签名
2018开篇,这回要讲的是iOS重签名,网上重签名的工具太多了,我试用了一下,都还挺好使。但是,你不知道,我是个喜欢装逼的人吗?用工具怎么够酷呢?对,装逼得用终端。接下来的操作都是在终端中进行,开始你的装逼之旅吧! 一、重签名准备工作:找到开发者证书和配置文件:列出所有开发者证书文件:security find-identity -p codesigning -v
2018-01-06 20:17:06
3247
原创 2018新起点-脱贫计划
2017年终总结:回顾《2017新的征程-年度计划》,对比一下2017年的年度计划,发现完成度到50%了,较去年稳步提升5%,整体上还是有进步,但是幅度不太大。这还远远不够,没有达到60%,结果就是不及格的。这一年来,工作还是有不少收获的。公司APP的稳步迭代,自己忙里偷闲学了一些iOS初级的逆向知识,还是得益于领导做的一次有关逆向的分享,感觉在工作挺实用的,就学了。我个人觉得最有意义的,还是做了一
2018-01-02 10:30:02
755
原创 iOS日常Debug之Crash日志文件分析
好久没写博客了,真的不是忙没有时间。就是懒!闲话少说,言归正传。事件起因,群里一个朋友说自己的app被拒了,苹果给的被拒原因是AppStore审核指南条例2.1,说是app存在崩溃。还附带上了Crash日志文件。看了一眼Crash日志文件,彻底懵了! What?(此处略过一句脏话)一、查看Crash日志文件信息看到这种东西,我第一反应就是跑去看官方文档!Incident Identifier
2017-07-08 23:25:44
1624
原创 2017新的征程-年度计划
总结:翻开之前的《2015年终总结》,发现2016年的计划完成度不到45%,其中有失落,也有收获!感谢那些支持和帮助我的朋友和家人!风雨中,我挺过来了!时刻要告诉自己,你是最棒的!加油!不经历风雨,怎么见彩虹。我一直在路上,砥砺前行。2017年依旧是六个计划!为了不让计划仅仅只停留在计划,本次引入了月结和奖惩机制,即每月都必须总结计划完成进度,年底视计划完成度实行激励或惩罚措施!2017的计划与展望
2017-02-07 23:31:31
464
原创 iOS开发之Xcode常用调试(Debug)技巧总结
最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题。平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼。Debug的技巧很多,比如最常见的方式是打个Log,在一些工程中处处可见NSLog。还有就是打断点的Debug方式等。诸如此类,下面就自己在开发过程中常用的Xcode调试技巧简单的做个总结。 一、Xcode调试技巧之:NSLog上面也提到了,在我们日常的开发过程中最常见的De
2016-10-29 12:32:00
2048
原创 iOS图形绘制CoreGraphics篇
1、绘制直线//获取当前上下文 CGContextRef contextRef = UIGraphicsGetCurrentContext(); UIColor *color = [UIColor colorWithRed:0.5 green:0.35 blue:0.8 alpha:0.7]; //设置线条颜色// CGContextSetStrokeColor(c
2016-05-15 00:03:13
2483
原创 iOS图形绘制UIBezierPath篇
1、绘制直线UIBezierPath *line = [[UIBezierPath alloc] init];//设置线宽line.lineWidth = 3;[line moveToPoint:CGPointMake(50, 20)];[line addLineToPoint:CGPointMake(150, 20)];//设置绘制线条颜色,这个地方需要注意!UIBezierPath本身
2016-05-14 23:56:02
3415
翻译 Swift2.2新特性
1、编译期Swift版本检测#if swift(>=3.0) print("Running Swift 3.0 or later")#else print("Running Swift 2.2 or earlier")#endif它和Swift2中介绍过的#available表达式不同,#available表达式是运行时检查,#if swift(>=3.0)... #else
2016-05-09 23:44:46
1303
原创 iOS面试题大全2021(附答案)
1、简述你项目中常用的设计模式。它们有什么优缺点?常用的设计模式有:代理、观察者、单例。(1)单例:它是用来限制一个类只能创建一个对象。这个对象中的属性可以存储全局共享的数据。所有的类都能访问、设置此单例中的属性数据。优点:是它只会创建一个对象容易供外界访问,节约性能。缺点:是一个类只有一个对象,可能造成责任过重,在一定程度上违背了“单一职责原则”。单例模式中没有抽象层,所以单例类的扩展有很大的困难
2016-05-02 00:33:53
14392
原创 iOS面试题系列之UI相关
1、简述app启动周期。打开应用程序,它先会执行main函数,再执行UIApplicationMain函数。初始化 UIApplication,设置代理对象,开启事件循环,调用代理方法进行事件处理。首先会调用application:didFinishLaunchingWithOptions:代理方法。 接下来会调用applicationDidBecomeActive:代理方法。监听系统事件,结束
2016-05-02 00:30:34
1057
原创 iOS面试题系列之常见算法
iOS面试中熟悉常见算法1、 对以下一组数据进行降序排序(冒泡排序)。“24,17,85,13,9,54,76,45,5,63”int main(int argc, char *argv[]) { int array[10] = {24, 17, 85, 13, 9, 54, 76, 45, 5, 63}; int num = sizeof(array)/sizeof(int);
2016-05-02 00:27:34
24798
1
原创 React Native iOS 开发环境搭建
一、React Native基础环境搭建1、安装Homebrew打开终端输入:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"2、安装nvm方法通过脚本安装方式,在终端执行:curl -o- https://raw.githubusercontent.com/creati
2016-01-21 01:25:37
920
原创 UICollectionView(纯代码方式)实现带上下拉刷新的瀑布流式
瀑布流(WaterFlow)是项目开发过程中的常见布局,有关于瀑布流(WaterFlow)的实现方式:在UICollectionView未出现之前,瀑布流的实现多半是采用UIScrollView或是UITableView。对于我们这种用惯了表视图的人来说,UICollectionView倒略显陌生。有关于UICollectionView的介绍我就不一一赘述,因为一两句话也很难说清楚。网上有很多优秀的
2016-01-15 01:55:34
6509
1
原创 Swift内存管理(ARC)之循环引用
Swift中是采用自动引用计数(ARC,AutomaticReferenceCounting)机制来对内存进行管理的。一、简述ARC如何工作:每当你每创建一个新的对象,它便会分配一块内存来存储该对象的相关信息。当你不再需要这个对象的时候,它就会自动释放这个对象,避免它再占用内存空间。当然,如果该对象只要至少存在一个引用就不会被释放。另外,你如果访问了一个已经被释放的对象,则很有可能会出现崩溃(野指针
2016-01-14 13:55:03
585
原创 Swift中UITableView的用法(自定义UITableView和UITableViewCell)
Swift中自定义表视图(UITableView)和单元格(UITableViewCell)
2016-01-04 21:36:18
885
原创 2015年终总结
回首过去一年,好像没有什么能说出口的成绩,专业没啥进步。在公司做了两款app,上半年主要开发的是一款叫“在线等”的手机应用,这是一款解决人们选择困难症的应用,经过重重困难,最终上线。没啥成绩可言。下半年主要研发的是一款叫“斗图神器”的应用,由于android版早就开发好了,所以iOS版开发起来就快很多了。总的来说成绩还不错,其中也有点小波折。现在已经提交过3,4版了。目前“斗图神器”项目已经引入了全
2015-12-31 10:28:53
466
原创 iOS绘制虚线方式总结
原文链接:【iOS绘制虚线方式总结】 一、iOS中绘制虚线常见的几种方式:1、重写drawRect方法。2、采用CAShapeLayer方式绘制虚线。3、经济实惠型:采用贴图的方式绘制虚线(需要设计师切图配合)。
2015-10-13 10:28:00
854
原创 升级xcode7问题汇总(持续更新)
1、真机编译无法通过,bitcode设置问题(bitcode不懂?请自行google)。 2、CGContextSaveGState: invalid context 0x03、 Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:]4、适配https请求问题5、社会化分享(第三方分享)
2015-09-21 00:28:27
685
原创 iOS中点击状态栏让滑动视图回到顶部
在产品开发过程中,有时候会有这种需求,需要点击状态栏让滑动视图(UIScrollView)或者表视图(UITableView)返回到顶部,让用户可以更快的浏览最新的信息。 这个时候我们需要设置滑动视图的scrollsToTop属性,让它决定点击状态栏是否返回顶部。 // When the user taps the status bar, the scroll view beneath the
2015-08-23 01:25:47
1588
原创 动态限制UITextField或UITextView用户输入中英文混编字数统计
动态限制用户输入字数,这个在很多app中都会涉及,由于NSString的Length属性获取的长度中英文都是一个字节,不满足一个汉字两个字节、一个字符一个字节的需求。网上的方法大致是以下两种:1、使用Unicode编码把OC中的NSString字符串转换成C的字符串。然后对字符串遍历进行统计长度。2、直接统计字符串的字符个数
2015-08-22 17:10:12
589
原创 xcode插件安装与卸载(简单实用)
xcode插件安装与卸载(简单实用)目前安装方式一般有两种,一种直接从github上面克隆工程到本地,另外一种是采用alcatraz插件管理工具。前者直接把工程克隆到本地,运行即可,方式简单粗暴,不做详细说明。本文主要介绍采用alcatraz插件管理工具进行安装插件,非常方便。1、xcode插件安装详细流程: (1)先去下载插件安装工具:alcatraz 下载办法: alcatraz提供了下载
2015-06-13 17:42:42
4528
原创 iOS FFmpeg编译及kxmovie、iFrameExtractor调试详解(无障碍阅读,绝对是你想要的)
一、FFmpeg编译二、在工程中使用FFmpeg,网上成熟的有kxmovie。三、iFrameExtractor-master(iFrameExtractor)工程编译和运行本文的开发环境为: 最新 ffmpeg-2.5.4/iOS SDK8.1/Xcode6.1/OS X Yosemite版本10.10.2特此声明:本文是通过网上收集整理加上自己亲自实验得来的。感谢所有网上分享的辛勤劳动者,本文仅供iOS学习使用。在学习的过程中,如果有问题或者不清楚的地方,欢迎留言,我们共同探讨互相学习。欢迎批评
2015-02-28 16:13:21
2553
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人