ios
淡水的救赎
熟悉ios开发、网络、linux,常用语言swift、python、c\c++、shell、java
展开
-
ios开发中的bundle和沙盒
沙盒1、沙盒机制介绍iOS中的沙盒机制是一种安全体系。每个iOS程序都有一个独立的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒。应用必须待在自己的沙盒里,其他应用不能访问该沙盒。所有的非代码文件都要保存在此,例如属性文件plist、文本文件、图像、图标、媒体资源等。沙盒是用来存入缓冲区的,APP关掉,缓存被自动清理。沙盒路径:NSLog(@"%@",NSHomeDir...转载 2018-04-11 14:44:28 · 1037 阅读 · 0 评论 -
ios的多线程问题
ios的线程使用可以分为三种1、直接创建Thread2、使用gcd,gcd提供了队列,将自己的任务同步或者异步的加入队列中执行,同时提供了一堆同步工具3、NSOperation和NSOperationQueue,我们可以方便的cancel掉运行的线程,如果自己做将非常不容易。对于第一种,容易不小心创建出过多的线程,占用大量的系统资源,容易让手机瘫痪掉。对于第二种GCD也不错,系统提供了全局队列和主...原创 2018-05-11 23:30:37 · 203 阅读 · 0 评论 -
IOS中xml的解析
解析的时候需要实现 XMLParserDelegate这个接口class RSSParserDelegate:NSObject, XMLParserDelegate {}1、实现Parser的didStartElement这个遇到element的处理类2、实现Parser的didEndElement这个遇到element结尾的处理类3、element的发现字符函数,foundCharactersf...原创 2018-05-18 23:44:55 · 562 阅读 · 0 评论 -
如何通过cocoapod导入第三方库
1、第一步先创建你的空项目2、在你项目的***.xcodeproj下的目录里运行pod init3、编辑Podfile,加入你需要的库,例如pod 'UIView+Shake'如果是swift的话就用use_frameworks!4、运行pod install,然后关闭xcode5、打开项目下的****.xcworkspace,ok,就算导入第三方库了,当然用的地方要import ***6、如果在...原创 2018-05-06 23:13:10 · 769 阅读 · 0 评论 -
ios常见的内存泄露的原因
参考https://blog.csdn.net/clovejq/article/details/71107674ios中引入自动ARC后会产生内存泄露的情况就是循环引用,相互等待,造成内存不能释放。循环强引用也有可以用的地方,这样可以避免提前释放,但是自己一定要记住,用完后置为nil,让其自动释放二、Block循环引用【??strongself是为了防止内存提前释放,有兴趣的童鞋可深入了解,这里不...转载 2018-05-14 13:57:59 · 1225 阅读 · 0 评论 -
__block关键字的使用
当外部 obj 指向 nil 的时候,obj 理应被释放,但实际上 blockObj 依然强引用着 obj,obj 其实并没有被真正释放。因此使用 __block 并不能避免循环引用的问题。但是我们可以通过手动释放 blockObj 的方式来释放 obj,这就需要我们在 block 内部将要退出的时候手动释放掉 blockObj ,如下这种形式MyObject *obj = [[MyObject ...转载 2018-05-14 17:19:19 · 653 阅读 · 0 评论 -
iOS浅析关于timer引起的内存泄漏
首先,说一下使用timer的误区,很多同学喜欢这样写:_timer = [NSTimer scheduledTimerWithTimeInterval:.5 target:self selector:@selector(timerRun:) userInf...转载 2018-05-14 19:50:10 · 643 阅读 · 0 评论 -
ios中的数据持久化
iOS 数据存储--几种数据持久化方案转载自:https://www.jianshu.com/p/7616cbd72845概论所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案:plist文件(属性列表)preference(偏好设置)NSKeyedArchiver(归档)SQLite...转载 2018-05-14 22:39:17 · 108 阅读 · 0 评论 -
ios 本地和远程通知
在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情。iOS中通知机制又叫消息机制,其包括两类:一类是本地通知;另一类是推送通知,也叫远程通知。两种通知在iOS中的表现一致,可以通过横幅或者弹出提醒两种形式告诉用户,并且点击通知可以会打开应用程序,但是实现原理却完全不同。今天就和大家一块去看一下如何在iOS中实...转载 2018-05-08 15:58:11 · 482 阅读 · 0 评论 -
iOS奔溃分析技巧-crash日志符号化---symbolicatecrash
iOS 使用symbolicatecrash分析crash文件iOS 使用symbolicatecrash分析crash文件首先,在桌面建一个文件夹crash,接着需要准备4个文件:1、崩溃日志.crash:Xcode->Window->Devices,选中设备,点击View Device Logs,然后可以看到好多日志,你可以根据时间来判断需要导出哪个日志,选中一个crash日志,右...转载 2018-05-15 19:36:55 · 377 阅读 · 0 评论 -
UIActivityIndicatorView的进度代理
设置是给那个控件的导航代理myWebView.navigationDelegate = self开始的时候实现func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) { myActivityIndicator.startAnimating() } ...原创 2018-05-15 23:43:55 · 170 阅读 · 0 评论 -
RunLoop
主线程的runloop系统创建,自己创建的线程需要自己去创建1.1 什么是RunLoop?可以理解为字面意思:Run表示运行,Loop表示循环。结合在一起就是运行的循环的意思。哈哈,我更愿意翻译为『跑圈』。直观理解就像是不停的跑圈。RunLoop实际上是一个对象,这个对象在循环中用来处理程序运行过程中出现的各种事件(比如说触摸事件、UI刷新事件、定时器事件、Selector事件),从而保持程序的持...原创 2018-05-11 14:44:25 · 131 阅读 · 0 评论 -
tableView,tableViewController
备忘笔记自己创建类cocoaTouch class然后关联storyBoard里面的UI,用代码操作。tableViewController 已经有了viewController + tableView + cell,需要自己创建一个UITableViewController的cocoaTouch文件,然后设置关联类。tableViewtable view cell区别tableView 设置Da...原创 2018-05-11 10:12:53 · 512 阅读 · 0 评论 -
closure的使用
closure中使用控件需要加上self,不能直接引用。closure简单的来说就是代码指针,可以动态的指定运行的代码,有很好的灵活性。原创 2018-04-26 18:17:40 · 592 阅读 · 0 评论 -
ios中多view的编辑
如何搞出navigation controller1、选择 editer -》embed in -》 navigation controller,view和navigation controller就会自动分离2、直接拉出navigation controller到storyboard上点击ctrl+鼠标左键就可以设置segue,拉出下一个view创建cocoa touch文件,然后关联view...原创 2018-04-12 12:44:39 · 130 阅读 · 0 评论 -
ios中如何通过代码来增加控件和添加控件的响应事件
1、创建控件let button = UIButton(type: UIButtonType.System)let label:UILabel = UILabel.init(frame: CGRectMake(50, 50, 100, 30))let account:UITextField = UITextField.init(frame: CGRectMake(50, 50, 200, 30))...原创 2018-04-12 16:47:42 · 320 阅读 · 0 评论 -
app store 上架
选择项目的顶端然后填入bundle identifieripad有多个方向的转向有support interface orientition可以减掉一些方向双击provision文件就可以加入xcode文件了选择generic ios device编译然后选择archive在点击upload app store的时候,先选validate验证一下最后在app store的页面上按完成-》存储- 》...原创 2018-05-09 17:32:25 · 145 阅读 · 0 评论 -
【iOS测试系列】instruments工具的使用(二)- 通过Time Profiler
这篇文章主要介绍使用Instruments的 Time Profiler 的使用前言1.很多公司都恨不得把app压法周期压缩到最低,这就导致了开发中隐藏了很多问题,有点经验的工程师草率的优化下,更糟的情况那些没有经验的工程师甚至不会对app进行任何优化.2.某种程度上来说,你开发过程中是可以忽略性能优化的. 十年前,移动设备的硬件资源是非常有限的.甚至连浮点数都是被禁止的.因为浮点数能导致代码变大...转载 2018-05-09 20:57:44 · 415 阅读 · 2 评论 -
IOS性能调优系列:使用Allocation动态分析内存使用情况
《IOS性能调优系列》第三篇,持续更新,欢迎关注。《IOS性能调优系列:Analyze静态分析》介绍了使用静态分析方法查找IOS内存泄漏的方法,《IOS性能调优系列:使用Instruments动态分析内存泄漏》讲解了使用Instruments的Leaks工具动态分析内存泄漏。这两篇都是关注于内存泄漏的,是内存调优首先要关注的方面。关于内存的问题,除了内存泄漏以外,还可能存在内存不合理使用的情况,也...转载 2018-05-09 21:00:05 · 611 阅读 · 0 评论 -
ios instruments leak 检测内存泄露
在苹果没有出ARC(自动内存管理机制)时,我们几乎有一半的开发时间都耗费在这么管理内存上.后来苹果很人性的出了ARC,虽然在很大程度上,帮助我们开发者节省了精力和时间.但是我们在开发过程中,由于种种原因,还是会出现内存泄露的问题.内存泄露是一个很严重的问题.下面就简单介绍下怎么使用Xcode8自带的Instruments中的Leaks检测我们的程序有没有内存泄露和定位内存泄露的代码.(分析内存泄露...转载 2018-05-09 21:02:32 · 463 阅读 · 0 评论 -
IOS性能调优系列:Analyze静态分析
目前关于IOS性能优化的教程较少,决定写一个《IOS性能调优系列》,主要关注与内存泄漏、性能优化、流量和电量分析几个方面。XCode已经提供了非常强大的性能调优工具,结合几个第三方工具和一些技巧,进行性能优化非常简单。第一篇先写写最简单的,Analyze静态分析。相信IOS开发者在App进行Build或Archive时,会产生很多编译警告,这些警告是编译时产生的,静态分析的过程也类似,在XCode...转载 2018-05-09 21:09:07 · 171 阅读 · 0 评论 -
iOS开发 - 耗电量分析
Instruments1:iPhone(iPad),设置-开发者-Logging打开Energy,然后点击Start Recording然后开始使用自己的app(当然也可以分析别的app),经过一段时间后,手机连接电脑打开Instruments,新建Energy Log导入手机上的Logged数据现在就可以看到详细的资源使用情况了,电量部分1-20,20代表消耗资源非常高还有其它cpu,网络,蓝牙...转载 2018-05-09 21:18:27 · 686 阅读 · 0 评论 -
container View的使用
Container View defines a region within a view controller's view subgraph that can include a child view controller. Create an embed segue from the container view to the child view controller in the sto...原创 2018-04-26 18:01:31 · 782 阅读 · 0 评论 -
按比例缩放UI控件
可以设置为等高或者按照比例来:先通过ctrl+鼠标来设置等高,然后在constraints里面选择等高的约束,然后在这个约束里面设置比例,比如300:667原创 2018-04-26 18:15:18 · 572 阅读 · 0 评论 -
STP和RSTP协议
周期性的发送BPDU数据,产生生成树原创 2018-05-16 16:33:30 · 1634 阅读 · 0 评论