随笔分类 - iOS开发
摘要:一个简单的绘图应用,模仿苹果自带软件备忘录里的涂鸦功能 核心代码 #import "DrawView.h" #import "DrawPath.h" @interface DrawView () @property (nonatomic, strong) NSMutableArray *paths;
阅读全文
摘要:实现一个简单的抽屉效果: 核心思想:KVO实现监听mainV的frame值的变化 核心代码: #import "ViewController.h" // @"frame" #define XMGkeyPath(objc, keyPath) @(((void)objc.keyPath, #keyPat
阅读全文
摘要:一、基本使用方法 1. 安装 FMDB 使用 CocoaPods 安装 FMDB,可以在你的 Podfile 中添加以下内容: pod 'FMDB' 然后运行 pod install 命令。 2. 导入 FMDB 在需要使用的文件中导入 FMDB: #import <FMDB/FMDB.h> 二、基
阅读全文
摘要:我们知道遍历数组是一个相对耗时的操作,而同时手机的核是越来越多,所以我们需要充分利用iOS多核的作用. 特别是在遍历操作中还有其他耗时操作.像我们平时直接遍历数组的操作 for (NSInteger i= 0,i< 100,i++){ //do something } 这样的代码不会随着手机的不断升
阅读全文
摘要:HTTP(超文本传输协议)定义了多种服务器交互方法,其中最常用的有四种:GET、POST、PUT、DELETE。这些方法涵盖了数据操作的基本需求,通常可以简化为增(PUT)、删(DELETE)、改(POST)、查(GET)。下面我们将详细介绍这些方法,并分析其应用场景和底层逻辑。 1. HTTP 方
阅读全文
摘要:前言 对于iOS开发中的网络请求模块,AFNet的使用应该是最熟悉不过了,但你是否把握了网络请求正确的完成时机?本篇文章涉及线程同步、线程依赖、线程组等专用名词的含义,若对上述名词认识模糊,可先进行查阅理解后阅读本文。如果你也纠结于文中所述问题,可进行阅读希望对你有所帮助。大神无视勿喷。 在真实开发
阅读全文
摘要:最近闲来无事去面试一下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 国际化 (Internationalization) 是指让你的应用程序能够支持多种语言和地区。通过国际化,你可以让应用程序根据用户的语言选择显示相应的文本、图像等资源。以下是实现 iOS 国际化(中文简体、中文繁体、英文)的详细步骤,以及一个用于简化该过程的工具类的封装。 实现步骤 1.
阅读全文
摘要:在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)
阅读全文