ios开发
文章平均质量分 69
acceptit8
这个作者很懒,什么都没留下…
展开
-
多图上传遇到的图片顺序问题及解决
一 问题描述多个图片上传到服务器,需要保证图片添加的顺序与最后展示的顺序一致。二 问题解决由于上传图片的时候,针对每张图都有1个上传的接口请求,每个请求依次开始,但并没有保证完成顺序。因此,根据图片文件大小的不同,请求完成的顺序可能与最开始的图片添加顺序不一致。需要针对请求图片的序号,对每一个请求返回的结果进行编号对应。然后将每个请求返回的结果,连同顺序编号一起作为一个整体元素放入一个请求结果数组。最后等所有请求完成时,从结果数组中取出元素,根据元素的顺序编号,重新进行排序。比如:图片数组为原创 2020-12-06 22:00:23 · 5093 阅读 · 0 评论 -
大型项目模块化解耦实践
软件的高内聚,低耦合是一个成熟项目的目标,也对项目的持续发展有利。随着一个商业软件的发展和功能的丰富扩展,对应的软件项目会逐渐变得庞大,后期的维护工作之一便是模块化解耦。本文针对近期在iOS项目中的模块化解耦进行简单探讨,欢迎大家一起交流。按照 京东iOS客户端组件管理实践 这篇文章中的观点,模块化解耦的实现方式简单分为两类:代码解耦 CocoaPods管理当然这是从实现方式上来分,从项目的代原创 2018-01-12 23:00:11 · 3055 阅读 · 0 评论 -
iOS11 设置搜索栏取消按钮颜色
iOS11 取消按钮颜色变白的解决取消按钮所在的搜索栏背景色为白色,取消按钮之前使用setTitleColor:forState:来设置字体颜色。但是在iOS11 中,该方法失效,导致取消按钮消失不见(字体颜色与搜索栏背景色重合了)。 在网上搜索,没有发现有人遇到过类似的问题,特记录解决方案。这个是关键代码://self.searchBar为搜索栏UIButton *cancleBtn = [s原创 2017-10-19 15:58:50 · 2600 阅读 · 0 评论 -
GCD 多线程API编程笔记
GCD是iOS编程中实现多线程的常用API,使用方便,无须进行线程的管理,由系统代劳。同时GCD基于C实现,性能强。 在名著《Pro multithreading and memory management for iOS and OS X》(中文名:《Objective-C 高级编程 iOS与 OSX多线程和内存管理》)中,专门有章节讲解,特根据此书讲解做些笔记。原创 2017-04-21 23:53:46 · 2039 阅读 · 0 评论 -
UIImageView显示动态图
在网页中,可以使用gif来显示动态图。但在iOS开发中,使用gif图来替换png等静态图, 也不能使得UIImageView加载渲染出动态效果。可以使用两种方案来达到此效果。一 设置 animationImagesUIImageView *demoImgView = [[UIImageView alloc] initWithFrame:CGRectMake(250, 160, 30, 14)];N原创 2017-08-18 15:01:19 · 5710 阅读 · 0 评论 -
iOS UI自适应布局(小记)
简介随着iOS设备尺寸的增多,屏幕的样式增多。在复杂界面布局时,为了达到设计师的设计效果,通常得根据屏幕尺寸调整界面的位置、长宽尺寸。这时,就需要考虑使用自适应布局了。 最近在项目实践中,遇到几种自适应布局的场景,作为小记。下面的几种函数,仅供此情形: 有text内容的视图要根据内容来改变大小使用,符合此博客倡导的自适应布局的体验注意事项。一 使用sizeToFit函数考虑这样一种情况:有一原创 2017-07-31 21:52:57 · 1128 阅读 · 0 评论 -
Cocoa框架-Core Location
Core Location 是用于帮助设备确定当前的位置、运动朝向及基于位置的距离、速度、方向等信息的 iOS框架。参考《精通iOS框架》做了简单的总结。 使用步骤如下...原创 2017-04-30 22:37:44 · 669 阅读 · 0 评论 -
iOS locks
The presence of multiple threads in an application opens up potential issues regarding safe access to resources from multiple threads of execution. Two threads modifying the same resource might interfe转载 2017-03-14 23:57:30 · 473 阅读 · 0 评论 -
iOS 分享数据到其它app(open in other app)
限于iOS的沙盒机制(sandbox),不能跨app访问数据。所以想分享app A的数据到app B中使用,需要借助open in来操作。 本文介绍如何实现通过“Open In”方式来分享数据到其它app当中,以及在实现时,踩到的坑(前车之鉴)。1. 涉及的类Cocoa框架为我们提供了类UIDocumentInteractionController来实现Open In分享。2. 实现步骤简单说来,原创 2017-02-02 21:40:42 · 2210 阅读 · 0 评论 -
iOS中文件下载监控及处理的小结
文件下载是app中常用的一个需求场景。需要在下载过程中显示下载进度,并在下载完成时进行处理。可以使用观察者模式来进行处理。 本文包括下述三个部分: - 观察者模式简介 - 文件下载监控中的使用 - 其它注意事项一 观察者模式简介观察者模式是行为模式中的一种,观察者监听被观察者的属性等变化。它允许定义一对多的依赖关系,让多个观察者同时监听一个对象。苹果Cocoa框架中通过3种方式实现了该模式:原创 2017-01-30 13:13:45 · 1272 阅读 · 0 评论 -
深入理解RunLoop[转载]
RunLoop是iOS开发中比较基础的一个问题,参考此文做了摘要总结了。基本概念• RunLoop 实际上就是一个对象,这个对象管理了其需要处理的事件和消息,并提供了一个入口函数来执行上面 Event Loop 的逻辑。线程执行了这个函数后,就会一直处于这个函数内部 “接受消息->等待->处理” 的循环中,直到这个循环结束(比如传入 quit 的消息),函数返回。 OSX/iOS 系统中,提转载 2017-02-19 22:34:51 · 651 阅读 · 0 评论 -
iOS 使用GCD多线程技术来处理耗时任务
现在的iOS是默认支持多线程的,有些操作比较耗时,但这些耗时的线程不能阻塞主线程。因此需要在实现时,注意确保主线程的顺畅,及时响应用户的交互。1. 处理耗时的逻辑操作比如进行图像的压缩和裁剪等耗CPU或GPU的操作时,可以将这些操作放在全局队列中异步执行:dispatch_async(dispatch_get_global_queue(0, 0), ^{ //complex logic原创 2017-02-03 11:58:13 · 3652 阅读 · 0 评论 -
TencentOpenAPI SDK接入与API注意事项
因项目需要,必须接入QQ分享的SDK来实现分享到手机QQ的功能。期间遇到不少坑,特写此文,愿给需要的人一点帮助。一 搭建环境下载SDK并加入工程1.1 在腾讯开放平台网站下载好SDK,解压后按照使用说明文档(下载),将TencentOpenAPI.framework和TencentOpenApi_IOS_Bundle.bundle文件拷贝到应用开发的目录下,注意必须放在项目主文件夹的根目录下,原创 2017-01-16 20:12:46 · 6884 阅读 · 0 评论 -
QQ邮箱记事本模块Lua实现小结
QQ邮箱是一个除了收邮件和发邮件的基本功能之外,具有其它一些小的办公功能的邮箱客户端。其中记事本是办公功能之一。 但是集成了记事本等小功能的邮箱,体积较大。为控制客户端体积,需要将非基本功能的一些功能模块脚本化,不编译到App当中,达到控制App体积,修复和升级方便的目的。 本文包括3个部分:原理简介优化经验教训原理简介Lua作为一门脚本语言,借助Lua脚本引擎和Lua运行库,来解释执行原创 2017-01-16 16:38:46 · 1475 阅读 · 0 评论 -
iOS的类的扩展
简介除去继承的方法之外,Objective c 为程序员提供了类别(Category)和延伸(Extension)两大扩展机制。它们可以向类中添加成员函数,实现功能上的扩展。 在添加的函数中,可以访问类中所有的数据成员,该类的子类也将继承新加的成员函数。 类别允许将一个类的实现分布在几个不同的文件中,但在文件中只允许添加成员函数,而不能添加数据成员(要添加属性的数据成员,可以用associati原创 2016-04-23 21:28:58 · 977 阅读 · 0 评论 -
ios编程之ReactiveCocoa框架
一 简介 ReactiveCocoa是支持函数式响应式编程(functional reactive programming)的框架,由GitHub开发参考这里的简介,官方网址为:https://github.com/ReactiveCocoa.二 优点(1) 代码更精简越少的代码,相对效率更高(2) 封装了KVO.框架将state的变化转化为signal来处理,可以方便原创 2016-01-31 23:16:55 · 533 阅读 · 0 评论 -
ios file handling
class Apple provides us two basic classes for handling file operations. They are: NSFileManager, NSFileHandlefunctions Here I want to describe the functions of them group by the class. 2.1 NSFileM原创 2016-02-10 21:58:52 · 1121 阅读 · 0 评论 -
IOS中Cocoa对象的内存管理初探(简介)
在Cocoa对象的生命周期中,有创建、初始化、被使用、被持有或拷贝、被释放(release或dealloc)等过程。 与Java具有垃圾收集(GC:即Gabage Collection)的机制不同,IOS中,对象的管理需要通过对象的引用计数(Retain Count)来标识。对象的引用计数用于标识对其感兴趣的对象的书目,在使用alloc、init方法初始化对象之后,会置该对象的引用计数为1.在使用原创 2015-06-18 12:16:49 · 617 阅读 · 0 评论