
iOS
文章平均质量分 57
lijuan3203
自信 开朗 诚实
展开
-
iOS开发-归纳总结(上)
1. 风格纠错题修改方法有很多种,现给出一种做示例:下面对具体修改的地方,分两部分做下介绍:硬伤部分和优化部分 。因为硬伤部分没什么技术含量,为了节省大家时间,放在后面讲,大神请直接看优化部分。优化部分1)enum建议使用 NS_ENUM 和 NS_OPTIONS 宏来定义枚举类型,参见官方的 Adopting Modern Objective-C 一文:转载 2015-11-09 23:44:30 · 596 阅读 · 0 评论 -
iOS中Bonjour:NSNetServiceBrowser在子线程上使用
在子线程上创建一个NSNetServiceBrowser,并调用searchForServicesOfType开始搜索,是不会起作用。因为他需要在runloop中实现,苹果的文档有这么一段话:A network service browser performs all searches asynchronously using the current run loop to exe原创 2015-10-15 15:08:19 · 1303 阅读 · 0 评论 -
深入浅出 Cocoa 之 Bonjour 网络编程
本文高度参考自 Tutorial: Networking and Bonjour on iPhone,在那个帖子里 iphone 版本的代码采用的是 MIT 开源协议,所以本例子中的 Mac 版本亦采用 MIT 开源协议。E文较好的童鞋建议阅读原文。本文通过使用 Bonjour 实现了一个简单的服务器/客户端聊天程序,演示了 CFSocket,NSNetService/NSNetSer转载 2015-10-15 15:13:51 · 1515 阅读 · 0 评论 -
iOS容易造成循环引用的三种场景,就在你我身边!
ARC已经出来很久了,自动释放内存的确很方便,但是并非绝对安全绝对不会产生内存泄露。导致iOS对象无法按预期释放的一个无形杀手是——循环引用。循环引用可以简单理解为A引用了B,而B又引用了A,双方都同时保持对方的一个引用,导致任何时候引用计数都不为0,始终无法释放。若当前对象是一个ViewController,则在dismiss或者pop之后其dealloc无法被调用,在频繁的push或者pres转载 2015-11-16 14:49:51 · 404 阅读 · 0 评论 -
Associative机制使用场景
1. 概念objective-c有两个扩展机制:category和associative。我们可以通过category来扩展方法,但是它有个很大的局限性,不能扩展属性。于是,就有了专门用来扩展属性的机制:associative。 2. 使用方法在iOS开发过程中,category比较常见,而associative就用的比较少。associative的主要转载 2015-12-12 11:40:33 · 337 阅读 · 0 评论 -
自学 iOS 开发的一些经验(一些很好的链接)
不知不觉作为 iOS 开发也有两年多的时间了,记得当初看到 OC 的语法时,愣是被吓了回去,隔了好久才重新耐下心去啃一啃。啃了一阵,觉得大概有了点概念,看到 Cocoa 那么多的 Class,又懵了,怎么才能调用系统的相机?怎么保存信息?怎么做一个像 Twitter 个人页那样的页面?总之就是不知道该从哪切入。现在回想起来,其实路一直都在,而且有很多条,当初如果有人能够指出一条还不错的道,转载 2015-12-12 11:50:40 · 412 阅读 · 0 评论 -
iOS 数据保存4种方式总结
数据保存的方式:1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的必须提供encodeWithCoder:和initWithCoder:方法。前一个方法告诉系统怎么对对象进行编码,而后一个法则是告诉系统怎么对对象进行解码。例如对Student对象归档保存。 定义Student: @interface MJStude原创 2015-11-18 17:16:26 · 478 阅读 · 0 评论 -
Masonry介绍与使用:快速上手Autolayout
前言1MagicNumber -> autoresizingMask -> autolayout以上是纯手写代码所经历的关于页面布局的三个时期在iphone1-iphone3gs时代 window的size固定为(320,480) 我们只需要简单计算一下相对位置就好了在iphone4-iphon转载 2015-12-15 17:25:03 · 518 阅读 · 0 评论 -
iOS开发~CocoaPods使用详细说明
一、概要iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库。二、安装由于网上的教程基本都大同小异,但细节之处还不是很完善,所以借机会在这里补充下:注:要使用CocoaPods,那就要下载安装它,而下载安装CocoaPods需要Ruby转载 2015-12-02 11:41:39 · 504 阅读 · 0 评论 -
CocoaPods安装和使用教程
Code4App 原创文章。转载请注明出处:http://code4app.com/article/cocoapods-install-usage目录CocoaPods是什么?如何下载和安装CocoaPods?如何使用CocoaPods?场景1:利用CocoaPods,在项目中导入AFNetworking类库场景2:如何正确编译运行一个包含CocoPods类库的项目转载 2015-11-13 10:08:04 · 363 阅读 · 0 评论 -
浅谈iOS中MVVM的架构设计与团队协作
由于本人项目经验有限,关于架构设计方面的东西理解有限,我个人对MVVM的理解主要是借鉴于之前的用过的MVC的Web框架~在学校的时候用过ThinkPHP框架,和SSH框架,都是MVC的架构模式,今天MVVM与传统的MVC可谓是极为相似,也可以说是兄弟关系,也就是一家人了。说到架构设计和团队协作,这个对App的开发还是比较重要的。即使作为一个专业的搬砖者,前提是你这砖搬完放在哪?不只是Cod转载 2015-11-13 09:34:40 · 476 阅读 · 0 评论 -
iOS开发:什么是Bonjour
1. Bonjour简介Bonjour是Apple推出的零配置网络协议,主要的目的是在缺少中心服务器的情况下解决网络设备的IP获取,名称解析和服务发现等关键问题。Bonjour这个词来源于法语,是“你好”的意思,应该是指遵从这个协议的设备可以通过主动打招呼的形式发现彼此。Bonjour的法语发音大概为“甭油喝”,我们不会读法语,也不会延用法语发音,Bonjour的英语发音大概是“帮转载 2015-10-13 10:32:36 · 581 阅读 · 0 评论 -
GCD 深入理解(二)
欢迎来到GCD深入理解系列教程的第二部分(也是最后一部分)。 在本系列的第一部分中,你已经学到超过你想像的关于并发、线程以及GCD 如何工作的知识。通过在初始化时利用 dispatch_once,你创建了一个线程安全的 PhotoManager 单例,而且你通过使用 dispatch_barrier_async 和 dispatch_sync 的组合使得对 Photos 数组的转载 2015-11-10 11:25:43 · 416 阅读 · 0 评论 -
iOS 苹果官方Demo汇总
其实, 开发了这么久, 不得不说, 苹果官方的Demo才是对某一个框架或者是某一个功能模块的完美的诠释, 所以, 在今天给大家贡献这些Demo的描述以及Git的下载地址, 大家可以自行阅读Demo, 提高编码水平。点击左上角的DownloadDemoGitHub 文章链接地址, 欢迎Star+ForkMirror of Apple's iOS s原创 2015-10-26 09:50:19 · 1873 阅读 · 0 评论 -
了解External Accessory Framework之EAAccessory
最近要做MFI配件的app,找了一下需要External Accessory Framework框架,但是相关的文章貌似不多,所以记录下自己的所学到的一些内容与大家分享。 那么什么是External Accessory Framework? 这里引用了Apple Developer内的原文: The External Accessory framework原创 2015-10-26 19:46:06 · 1061 阅读 · 0 评论 -
关于iphone accessory的理解
首先,如果我们的应用程序想跟外设传输数据,先要透过iphone的操作系统,也就是iphoneOS,而最开始的认证过程也是在外设和iphoneOS之间发生的,苹果为这个过程提供了一颗认证芯片(这颗芯片的作用是用来让iphoneOS识别这个外设是经过苹果公司承认的,他的通信方式是I2C总线,而且每出一个产品苹果都会收几美元的认证费用,苹果用心何其毒也~~~) IphoneOS承认转载 2015-10-26 20:59:40 · 938 阅读 · 0 评论 -
关于iOS9中的App Transport Security相关说明及适配
iOS9中新增App Transport Security(简称ATS)特性, 主要使到原来请求的时候用到的HTTP,都转向TLS1.2协议进行传输。这也意味着所有的HTTP协议都强制使用了HTTPS协议进行传输。原文如下:App Transport Security App Transport Security (ATS) enforces best practice转载 2015-10-27 14:16:11 · 492 阅读 · 0 评论 -
浅析NSNetService和NSNetServiceBrowser
这两个的概念不是我们讨论的内容。首先,我们要分清楚NSNetService和NSNetServiceBrowser的作用。前者可以是服务提供者生成的一个服务,然后加到runloop中,并运行服务。这样后者就可以获取到该服务的动态,包括发现该服务,该服务移除等。但是发现是一个很轻量的操作,有点像HTTP中的head请求,并不会去获取body。同理,发现服务获取到的NSNetService也是转载 2015-10-13 10:34:15 · 1554 阅读 · 0 评论 -
ios9遇到 App Transport Security has blocked a cleartext HTTP(http://) resource load 错误
今天用ios9编译项目用到 URL 发送请求时,报下面的错: “App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist fil原创 2015-10-27 14:07:18 · 1836 阅读 · 0 评论 -
用Model-View-ViewModel构建iOS App
如果你已经开发一段时间的iOS应用,你一定听说过Model-View-Controller,即MVC。MVC是构建iOS App的标准模式。然而,最近我已经越来越厌倦MVC的一些缺点。在本文,我将重温一下MVC是什么,详述它的缺点,并且告诉你一个新的方式来架构你的App:Model-View-ViewModel。拿出你的流行语bingo card(宾果卡,一种游戏卡片-译者注),因为我们即将进行一转载 2015-11-13 10:05:08 · 409 阅读 · 0 评论 -
iOSCocoaPods Updating local specs repositories
在使用Cocoapods 安装第三方框架的时候,输入命令pod install之后,显示Updating local specs repositories的问题,很久没有反应。原因:命令被墙了解决办法:把pod install 命令换成 pod install --verbose --no-repo-update 就可以。原创 2015-12-02 11:47:48 · 617 阅读 · 0 评论 -
用CocoaPods做iOS程序的依赖管理
文档更新说明2012-12-02 v1.0 初稿2014-01-08 v1.1 增加设置 ruby 淘宝源相关内容2014-05-25 v2.0 增加国内 spec 镜像、使用私有 pod、podfile.lock、创建 spec 文件等内容2015-09-03 v2.1 优化排版,调整一些描述方式,使文章更易读懂。CocoaPods 简介每种语言发展到一个转载 2015-12-02 12:09:07 · 404 阅读 · 0 评论 -
IOS7 8中tableview分割线全屏
IOS8 设置TableView Separatorinset 分割线从边框顶端开始在ios8上 [TableView setSeparatorInset:UIEdgeInsetsMake(0,0,0,0)];不起作用经过测试加入下面方法 在ios7 8上都可以正常工作[objc] view plaincopyprint?-(void原创 2016-01-04 13:42:46 · 592 阅读 · 0 评论 -
iOS iOS中UITextField和UITextView屏蔽表情符号的输入
起因:云端服务器代码不支持表情符号的输入,所以APP端需要屏蔽掉所有的UITextField和UITextView屏蔽表情符号输入要判断是否含有Emoji表情,必须先了解什么是Emoji。Emoji 是一套起源于日本的12x12像素表情符号,由栗田穣崇(Shigetaka Kurit)创作,最早在日本网络及手机用户中流行,自苹果公司发布的iOS 5输入法中加入了emoj原创 2016-03-09 10:36:15 · 3650 阅读 · 0 评论 -
iOS中UITextField、UITextView的字数限制
在开发中, 经常会遇到这样的需求: 希望输入框有最大字数限制. 比如, 用户昵称长度限制, 评论最大字数限制.(一)UITextField字数限制解决方法:在viewDidLoad中注册通知.[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFiledEditCh原创 2015-12-07 13:07:08 · 547 阅读 · 0 评论 -
iOS 开发小技巧
在实际开发过程中经常需要的一些简单技巧1.TableView不显示没内容的Cell:self.tableView.tableFooterView = [[UIView alloc] init];2.拉伸图片的时候怎么才能让图片不变形? 方法一: UIImage *image = [[UIImageimageNamed:@"+"]stretchableIm原创 2016-03-10 15:36:47 · 415 阅读 · 0 评论 -
iOS 利用runtime关联对象
有次在大牛群看到一个问题:“如何给一个字典添加一个属性(不能继承)”,立马蒙逼了,不能用继承,难道用分类?但是分类貌似只能添加方法不能添加属性啊,百思不得其解,直到后来接触到了runtime才恍然大悟。什么是关联对象关联对象是指某个OC对象通过一个唯一的key连接到一个类的实例上。举个例子:Duan是Person类的一个实例,他的狗dog(一个OC对象)通过一根原创 2016-03-14 14:30:01 · 766 阅读 · 0 评论 -
小括号内联复合表达式
小括号内联复合表达式: ({...})类似@[] == [nsarray arraywith….]这种,你可以看成编译器帮你简化方便写代码的一种方式。A compound statement enclosed in parentheses来自《gcc官方对此的说明》,源自gcc对c的扩展,如今被clang继承。源代码定义:RETURN_VALUE_RECEIVER =原创 2016-05-23 14:44:03 · 698 阅读 · 0 评论 -
Cornerstone SVN: The working copy is locked due to a previous error
使用CornerStone工具updat更新到最新代码后,仍然显示未更新,而且继续更新,SVN代码报错:The working copy is locked due to a previous error.不仅无法上传,也无法更新,错误提示被锁。解决方法1:在CornerStone找到本地代码工程 - 右键 - 点击clean 即可。解决方法2:使用终端命令,原创 2016-07-26 10:58:03 · 9453 阅读 · 0 评论 -
Socket相关收集
socket(套接字)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。转载 2016-08-03 16:02:50 · 490 阅读 · 0 评论 -
手把手教你使用CocoaPods打包静态库
今天我们就来谈一谈如何使用CocoaPods打包静态库。一般情况下我们使用CocoaPods来管理第三方开源类库,但是我们也有可能存在这样的需求:开发一个用CocoaPods来管理依赖关系的静态库给其他人使用,但是又不想公开源代码,比如:SDK,那么我们就需要把他打成静态库。这篇文章以一个依赖AFNetworking 3.0的静态库来讲述如何创建使用了CocoaPods的静态库以及打包的过程。原创 2016-08-03 17:46:00 · 4920 阅读 · 0 评论 -
IOS 处理多张图片内存问题
在实际项目中,用户在上传图片时,有时会一次性上传大量的图片。在上传图片前,我们要进行一系列操作,比如:旋转图片为正确方向,压缩图片等,这些操作需要将图片加载到内存中,这时候会遇到的一个问题是内存剧增,导致内存不够用,从而出现闪退的问题,下面对内存的使用做详细分析.一、内存分析,非优化我在测试项目中,重复加载了一张图片1000次,首先加载图片到内存,然后进行压缩操作,释放内存原创 2016-03-29 19:02:18 · 3877 阅读 · 0 评论 -
iOS 内存管理(一):基本概念与原理
在Objective-C的内存管理中,其实就是引用计数(reference count)的管理。内存管理就是在程序需要时程序员分配一段内存空间,而当使用完之后将它释放。如果程序员对内存资源使用不当,有时不仅会造成内存资源浪费,甚至会导致程序crach。我们将会从引用计数和内存管理规则等基本概念开始,然后讲述有哪些内存管理方法,最后注意有哪些常见内存问题。memory managem原创 2016-03-03 14:08:09 · 550 阅读 · 0 评论 -
didFinishLaunchingWithOptions参数launchOptions内容
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions说明:当应用程序启动时执行,应用程序启动入口。只在应用程序启动时执行一次。application参数用来获取应用程序的状态、变量等,值得注意的是字典参数:(NSDictionary原创 2015-12-08 14:42:44 · 1337 阅读 · 0 评论 -
整理下iOS常用的三方库,以备查阅。2015年11月21日更新
UI相关:上拉下拉刷新控件:链接:MJRefresh动态启动图:链接:YFStartViewMBProgressHUD:链接:MBProgressHUD一个效果很好的弹出下拉框:链接:REMenu一个可滑动选择的tab:链接:HTHorizontalSelectionList吊炸天的多种效果滚动图:链接:iCarousel高仿支付宝解锁:原创 2016-01-04 18:14:44 · 977 阅读 · 0 评论 -
第三方库大全
自己总结的iOS、mac开源项目及库,持续更新。。。。 github排名 https://github.com/trending,github搜索:https://github.com/search目录UI下拉刷新模糊效果AutoLayout富文本图表表相关与Tabbar隐藏与显示HUD与Toast对话框其他UI动画侧滑与右滑返回手势gif动画其他动画网络相转载 2016-01-04 18:19:13 · 3734 阅读 · 0 评论 -
IOS 分享你最喜欢的技巧和提示
Objective-C1.让Xcode的控制台支持LLDB类型的打印这有什么用?怎么说尼,笔者认为这个还是比较有用滴,为什么有用尼?因为在Xcode断点调试的时候, 在控制台输入 po self.view.frame 或者 po id 类型的时候就死翘翘了。不信? 看如下图 :进入正题打开终端输入三条命令:1. touch ~/.转载 2016-01-04 18:34:10 · 519 阅读 · 0 评论 -
ios blog收集
教程网站http://www.raywenderlich.com/objc.iohttps://www.objc.io/objc.io 中问http://objcio.cn/忘记什么时候收藏的了http://tutsplus.com/设计https://designcode.io/subjective-Chttp://subjc.com/NSHiph原创 2015-12-03 16:50:38 · 649 阅读 · 0 评论 -
Xcode因为证书问题常见的错误
1、确认下证书是不是开发证书,如果是发布证书就会出现这样的提示。2、证书失效了,去开发者中心重新生成一个。3、包标识符不与描述文件包含的包标识符不一致,按照它的提示换一下就好了,最好不要点 Fix Issue,点完后 Xcode 会自己生成一个包含统配包标识符的描述文件,并且 Remove 已经生成好的描述文件原创 2015-12-03 11:13:23 · 1067 阅读 · 0 评论 -
后台定位上传的代码实践
前言之前的文章说过 我现在做的是LBS定位的社交APP 其中主要的一个功能就是能够实时定位社交圈中各个成员的位置 后台实时上传位置则是非常重要的一个技术点 接下来就来说说我关于这方面的实践经验需求先来看看实现这个功能的具体需求是什么 由于我们是实时定位的生活类社交APP 所以我们需要做到一下几点1. 如果用户的位置在持续变化 则隔一段时间上报一次由于我们转载 2015-12-04 19:59:30 · 526 阅读 · 0 评论