摘要:
最近闲来无事去面试一下iOS开发,让我感到吃惊的,面试官竟然问怎么分目录结构,还具体问每个子目录的文件名。 目录结构确实非常重要,面试官这么问,无疑是想窥探开发经验。清晰的目录结构,可让人一眼明白相应的业务和职能,这也能体现开发者的经验和架构水平。 目前,我接触过的项目中,比较常规的两种结构:1.主 阅读全文
摘要:
前言 本篇主要介绍Runtime在开发中的一些使用场景,顺便讲解了下MJExtension的底层实现 一、runtime简介 RunTime简称运行时。OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制。 对于C语言,函数的调用在编译的时候会决定调用哪个函数。 对于OC的函数,属 阅读全文
摘要:
iOS开发 Xcode8中遇到的问题及改动 新版本发布总会有很多坑,也会有很多改动。 一个一个填吧。。。 一、遇到的问题 1、权限以及相关设置 iOS10系统下调用系统相册、相机功能,或者苹果健康都会遇到闪退的情况,调用系统相册报错描述如下: This app has crashed because 阅读全文
摘要:
在开发iOS应用时,有时需要强制退出程序。然而,iOS平台并未提供供正常退出应用程序的官方API。 1. 使用UIAlertView 与 exit(0) 首先,我们来看一个使用UIAlertView提供退出应用选项的示例代码: UIAlertView* alert = [[UIAlertView a 阅读全文
摘要:
待定 阅读全文
摘要:
在iOS开发中,一像素线(One Pixel Line)经常用于UI设计中分隔视图或者绘制边框。这些线在不同设备上的实现方式可能会有所不同,尤其是在高分辨率屏幕(如Retina屏幕)中。 方法一:使用UIView和Auto Layout 一种常见的方法是使用UIView并利用Auto Layout设 阅读全文
摘要:
在iOS开发中,理解属性修饰符(例如assign、copy、retain、weak和strong),对编写高效、健壮的代码至关重要。 属性修饰符解析 1. assign assign适用于基础数据类型(例如NSInteger、CGFloat)和C数据类型(例如int、float、double)。它是 阅读全文
摘要:
Block是iOS和macOS开发中最有用且高效的特性之一。它能捕获并存储周围的上下文,为简化回调和异步操作提供了强有力的支持。本篇文章将详细介绍Block,包括其结构、底层内存布局及相关的内存管理机制。 什么是Block? Block是一个封装了代码和数据容器的对象。它包含了代码逻辑,并且能够捕获 阅读全文
摘要:
swift与OC之间不得不知道的21点 自6月的WWDC大会上由苹果的大神Chris Lattner向我们首次展示swift至今已经大半年时间了,虽然绝大部分软件公司代码里还都见不到一丁点swift的影子,但各路大牛早已纷纷已经对swift进行过各种挖掘了。 我总结下我的看法。主要是给还没仔细研究s 阅读全文
摘要:
在iOS开发中,性能优化是提升用户体验、提高应用响应速度和资源利用率的关键。本文将详细介绍从ARC到View控制在内的一系列优化技巧,帮助开发者在项目升级或开发中避免性能瓶颈。 1. 使用ARC管理内存 自动引用计数(Automatic Reference Counting, ARC)和iOS 5一 阅读全文
摘要:
在 iOS 开发中,Xcode 的重大版本升级通常会带来不少变化。本文探讨了开发者在从 Xcode 6 升级到 Xcode 7 后遇到的一些问题,主要聚焦于状态栏(StatusBar)的管理和配置,并提供详细的解决方案和背后的底层逻辑分析。 问题一:老项目在 Xcode 7 上崩溃 在 Xcode 阅读全文
摘要:
在 iOS 应用开发中,StatusBar(状态栏)是一个重要的 UI 组件。它显示在屏幕顶部,用于展示关键信息如时间、电池电量、网络状态等。本文将深入探讨 StatusBar 的各个方面,包括其基本概念、常见的操作和自定义方法以及其在不同 iOS 版本中的变化。 一、StatusBar 基本概念 阅读全文
摘要:
TCP(传输控制协议,Transmission Control Protocol)和UDP(用户数据报协议,User Datagram Protocol)是互联网中最常见的两种传输层协议,它们在计算机网络中扮演着重要的角色。下面是关于这两种协议的详细说明及对比。 TCP (Transmission 阅读全文
摘要:
在开发 iOS 应用时,我们经常需要让不同的 controllers 之间进行通信,而不希望它们之间过于耦合。为此,我们通常会使用以下三种模式来实现通信: 委托(delegation) 通知中心(Notification Center) 键值观察(Key Value Observing, KVO) 阅读全文
摘要:
转载: 平时APP中的广告位、或者滚动的新闻图片等用到的就是图片轮播这种效果,实现方式主要有两种,一种是ScrollView+ImageView,另一种则是通过CollectionView,今天总结的是ScrollView这种方式。 1.图片轮播效果实现 主要实现思路是:根据图片总数及宽高设置好Sc 阅读全文
摘要:
之前看到过的一篇文章 对collectionView的使用总结的非常好:“iOS6新特征:UICollectionView介绍” 流水布局在现在的应用中很常见了,简单的研究了下,实现下面的功能 那我这里就简单介绍下 UICollectionViewFlowLayout 常用的几个方法,通过这几个方法 阅读全文
摘要:
一、简介 在 iOS 应用开发中,搜索功能是一个不可或缺的组件。UISearchBar 控件提供了一种集成搜索功能的便捷方式。本文将详细介绍 UISearchBar 控件的相关属性和方法,并通过实例代码说明其使用方法。 二、UISearchBar 控件 UISearchBar 是专门为搜索功能设计的 阅读全文
摘要:
一、iPad简介 1. 什么是 iPad iPad 是苹果公司于 2010 年发布的一款平板电脑。它的定位介于苹果的智能手机 iPhone 和笔记本电脑产品之间。与 iPhone 一样,iPad 也搭载了 iOS 操作系统(如今为 iPadOS)。 2. iPhone 和 iPad 的区别 虽然 i 阅读全文
摘要:
一、二维码的生成 从iOS7开始集成了二维码的生成和读取功能此前被广泛使用的zbarsdk目前不支持64位处理器 生成二维码的步骤:导入CoreImage框架通过滤镜CIFilter生成二维码 二维码的内容(传统的条形码只能放数字):纯文本名片URL // 1. 实例化二维码滤镜 CIFilter 阅读全文
摘要:
一、远程音频播放(<AVFoundation/AVFoundation.h>) #import <AVFoundation/AVFoundation.h> /** 播放器 */ @property (nonatomic, strong) AVPlayer *player; #pragma mark 阅读全文
摘要:
一、简介 简单来说,音频可以分为2种音效又称“短音频”,通常在程序中的播放时长为1~2秒在应用程序中起到点缀效果,提升整体用户体验 音乐比如游戏中的“背景音乐”,一般播放时间较长 播放音频可以使用框架AVFoundation.framework 二、音效 1、音效的播放 // 1.获得音效文件的路径 阅读全文
摘要:
一、简介 1、如何访问用户的通讯录1)在iOS9之前有2个框架可以访问用户的通讯录AddressBookUI.framework提供了联系人列表界面、联系人详情界面、添加联系人界面等一般用于选择联系人 AddressBook.framework纯C语言的API,仅仅是获得联系人数据没有提供UI界面展 阅读全文
摘要:
一、传感器 1、什么是传感器传感器是一种感应\检测周围环境的一种装置, 目前已经广泛应用于智能手机上 传感器的作用用于感应\检测设备周边的信息不同类型的传感器, 检测的信息也不一样 iPhone中的下面现象都是由传感器完成的在地图应用中, 能判断出手机头面向的方向一关灯, iPhone会自动调整屏幕 阅读全文
摘要:
一、内存分析 1、静态内存分析(Analyze)不运行程序,直接对代码进行内存分析,查看代码是否有内存泄露优点:分析速度快,并且可以对所有的代码进行内存分析缺点:分析结果不一定准确(没有运行程序,根据代码的上下文语法结构)注意:如果有提示有内存泄露,一定结合代码查看代码是否有问题 静态内存分析,潜在 阅读全文
摘要:
iOS 支付宝集成指南 支付宝作为第三方支付平台,广泛应用于各类移动应用程序中,提供了一种便捷的支付方式。本文将详细介绍如何在 iOS 应用中集成支付宝,以及集成过程中需要注意的事项和底层逻辑分析。 一、什么是支付宝? 支付宝是一个第三方支付平台,类似于应用内购(IAP)。不同的是: 内购:用户将钱 阅读全文
摘要:
一、iOS 换肤功能 1. 换肤功能的思路 实现换肤功能的几点思路: 解决方案1:基于颜色的图片命名规范 问题1:每套图片的文件名必须遵循“颜色+名称.png”格式。 问题2:如果将某一图片应用到其他皮肤时会比较麻烦。 解决方案2:利用 Bundle 不同皮肤的图片文件保存在不同的 Bundle 中 阅读全文
摘要:
一、UIDynamic 1、简介什么是UIDynamicUIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象重力、弹性碰撞等现象 物理引擎的价值广泛用于游戏开发,经典成功案例是“愤怒的小鸟”让开发人员可以在远离物理学公式的 阅读全文
摘要:
在现代应用中,用户体验是我们关注的重点之一,为了提升用户的使用体验,我们可以在状态栏添加一个看不见(透明)的 UIWindow 并附加一个按钮,实现点击按钮时快速滚动到当前界面的顶部。这篇文章将详细介绍如何利用 UIWindow 实现该功能,并封装成一个工具类供外部使用。 一、UIWindow 的基 阅读全文
摘要:
一、简介 在移动互联网时代,移动应用可以解决用户的许多生活琐事,如找到附近的餐馆、KTV、电影院等,或者导航到指定的目的地。这些应用离不开定位和地图功能。在 iOS 开发中,定位和地图功能的实现基于两个核心框架: CoreLocation:用于地理定位、地理编码、区域监听等(注重功能实现)。 Map 阅读全文
摘要:
一、简介 移动互联网已经深刻改变了用户的生活方式,移动应用可以解决用户生活中的许多琐事。例如,我们可以通过应用来寻找周边的餐馆、KTV和电影院;导航功能可以根据用户设定的起点和终点,规划出合理的路线并指导用户如何到达目的地。这些应用都离不开定位和地图功能。 在 iOS 开发中,涉及到上述功能时必须基 阅读全文
摘要:
本文会详细介绍如何从头开始使用 Git 管理一个完整的项目,包括初始化仓库、设置远程仓库、日常操作以及一些高级操作。通过具体的操作步骤,快速掌握 Git 的使用方法。 前置条件 已安装 Git。 已有 GitHub、GitLab 或其他远程仓库平台的账号。 一、初始化项目及 Git 仓库 1. 创建 阅读全文
摘要:
基础 什么是 Git?它与其他版本控制工具有何不同? Git 是分布式版本控制系统,与 SVN 等集中式版本控制系统相比,Git 允许每个开发者拥有完整的代码库副本,可以离线工作。 如何初始化一个新的 Git 仓库? 可以使用命令 git init 来初始化一个新的 Git 仓库。 如何克隆一个现有 阅读全文
摘要:
一、Git 简介 什么是 Git? Git 是一款开源的分布式版本控制工具,以速度、简单和流行性著称。在分布式版本控制工具中,Git 是最快、最简单、最流行的选择。 Git 的起源 作者是 Linux 之父——Linus Benedict Torvalds。Git 最初是为了辅助 Linux 内核的 阅读全文
摘要:
1. 源代码管理工具概述 源代码管理工具的作用 源代码管理工具是软件开发过程中不可或缺的组件,具有以下几个重要作用: 版本追踪:能追踪一个项目从诞生到定案的全过程。 变更记录:记录项目所有内容的变化,方便以后查阅和审计。 协作开发:在团队开发中,确保每个成员的更改都能被追踪和管理,避免代码冲突。 使 阅读全文
摘要:
Subversion(SVN)是一种流行的版本控制系统,广泛用于版本管理、代码管理和团队协作。 1. 将文件 Checkout 到本地目录 命令: svn checkout path # 简写:svn co 示例: svn checkout svn://192.168.1.1/pro/domain 阅读全文
摘要:
在iOS开发中,键盘管理是文本输入的重要组成部分。UIKit框架提供了丰富的键盘配置选项,包括键盘类型、外观、回车键、自动大写、自动更正和安全文本输入等。 一、键盘类型 iOS提供了多种键盘类型,以满足不同的输入需求。这些类型通过UIKeyboardType枚举定义,包括默认键盘、ASCII键盘、数 阅读全文
摘要:
在当今的信息时代,数据安全对于保护用户隐私和敏感信息至关重要。本文将深入探讨数据安全的基本策略,详细解析常用的加密算法及其实现,介绍HTTPS机制及其深层实现原理,并探讨如何通过网络状态监控提升用户体验及防止中间人攻击的技术。 一、数据安全 1. 隐私数据的安全提交 在传输用户隐私数据时,使用正确的 阅读全文
摘要:
在iOS开发中,UIWebView是一个非常重要的组件,它可以加载和显示网页内容。本篇文章将详细介绍UIWebView以及和其相关的常用功能和高级特性。 一、UIWebView简介 什么是UIWebView UIWebView是iOS系统内置的网页浏览控件,功能类似于系统自带的Safari浏览器。U 阅读全文
摘要:
在iOS开发中,网络请求是一个非常常见的需求。本文将详细介绍三种网络请求的方式:NSURLConnection、NSURLSession、以及第三方库AFNetworking,并对相关知识点进行补充和分析。 一、NSURLConnection(补充) NSURLConnection是一种较早期的iO 阅读全文
摘要:
iOS依赖管理工具CocoaPods的使用详解 在iOS开发中,库和框架的使用是不可避免的。为了简化和管理第三方库,CocoaPods作为一个广泛使用的依赖管理工具应运而生。本文将详细介绍CocoaPods的安装、配置、使用以及一些常见问题的解决办法。 一、CocoaPods简介 CocoaPods 阅读全文