经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
 iOS
iOS开发 - OC - PCH文件使用

iOS开发 - OC - PCH文件使用

一、 PCH文件的作用      Xcode中,PCH文件在程序编译的时候会自动包含进去。也就是说PCH中的内容是全局的,可以使用在程序的任何地方,通过这个特性,我们可以概括到PCH的作用有以下几个方面:      (1...[2019/2/26]

iOS 多线程:『RunLoop』详尽总结

1. RunLoop 简介1.1 什么是 RunLoop? 可以理解为字面意思:Run 表示运行,Loop 表示循环。结合在一起就是运行的循环的意思。哈哈,我更愿意翻译为『跑圈』。直观理解就像是不停的跑圈。 RunLoop 实际上是一个对象,这个对象在循环中用来处理程序运行过程中出现的各种事件(比如...[2019/2/26]

iOS与H5交互(WKWbebView)

前言: 在iOS开发中,或多或少的会嵌入一些H5页面,有时候需要原生代码和H5页面进行交互。iOS8开始苹果推出性能更强大的WKWebView,所以一下方法是关于WKWebView与JS的交互。 创建WKWebView: 遵守协议 p.p1 { margin: 0.0px 0.0px 0.0...[2019/2/25]

iOS代理模式(delegate)的使用

前言: 代理模式是iOS中非常重要的一个模式,iOS SDK中的系统控件几乎都用到了代理模式。代理模式用来处理事件监听、参数传递功能。   协议创建(Protocol): 可手打如下代码,或者在代码块里面搜索"protocol",然后把协议的代码拖拽出来 p.p1 { margi...[2019/2/22]

iOS学习——#define、const、typedef的区别

在iOS开发中经常遇到一些字段和类型的定义,例如配置生产和测试不同环境的参数等,这时候经常用到#define、const以及typedef。那么它们之间有什么区别呢?我们接下来一个一个具体了解下。一、基本概念1.1、#define   #define并不是定义全局变量,而是宏定义。也就是说并不是真...[2019/2/22]

iOS 常用的宏定义

iOS 常用的宏定义

屏幕尺寸 #define kScreenWidth [UIScreen mainScreen].bounds.size.width #define kScreenHeight [UIScreen mainScreen].bounds.size.height 手机型号  #defi...[2019/2/22]

OC 知识:Foundation 框架及相关类详尽总结

本文用来介绍Foundation框架的相关知识,以及Foundation框架所提供类的相关知识总结。   1. 框架介绍 框架是由很多类、方法、函数和文档按照一定的逻辑组织起来的集合,以使开发程序变得更加容易。在OS X系统下有100多个框架,这些框架可以用来开发应用程...[2019/2/21]

iOS 开发者必不可少的 75 个工具

如果你去到一位熟练的木匠的工作室,你总是能发现他/她有一堆工具来完成不同的任务。 软件开发同样如此。你可以从软件开发者如何使用工具中看出他水准如何。有经验的开发者精于使用工具。对你目前所使用的工具不断研究,同时了解一些替代品的使用,当你目前所用的工具无法满足你的需要时可以填补空缺。 记住了这些,我...[2019/2/21]

OC 知识:彻底理解 iOS 内存管理(MRC、ARC)

1. 什么是内存管理 程序在运行的过程中通常通过以下行为,来增加程序的的内存占用 创建一个OC对象 定义一个变量 调用一个函数或者方法 而一个移动设备的内存是有限的,每个软件所能占用的内存也是有限的 当程序所占用的内存较多时,系统就会发出内存警告,这时就得...[2019/2/21]

ios宏定义学习

宏简介: 宏是一种批量处理的称谓。一般说来,宏是一种规则或模式,或称语法替换 ,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串)。这种替换在预编译时进行,称作宏展开。编译器会在编译前扫描代码,如果遇到我们已经定义好的宏那么就会进行代码替换,宏只会在内...[2019/2/19]

常用在线软件获取

1、学习工作相关 1.1 Windows 图片压缩Tinyjpg:解决应用图片资源过大的问题,可以先将图片进行码转换,可以有效降低资源占用率。 清华大学镜像源 MSDN微软系统下载 1.2 Apple iPhone支持SDK(Xcode调制专用) 链接:https: pan.baidu.c...[2019/2/18]

GCD死锁,及同步、异步、串行和并行队列组合情形

  一、概述 1)队列用来存储代码任务,线程用来运行代码任务; 2)main()函数作为程序入口,整个程序默认运行在主线程中,程序代码任务默认存放在主队列中; 3)以下所谓阻塞线程是针对主线程而言(子线程阻塞在所不问,自己手动管理);队列阻塞主要是针对主队列(子队列阻塞在所不问,自...[2019/2/15]

iOS----------时间戳与NSDate

1:时间戳转NSDate   NSString *timeStamp =@"1545965436";   NSDate *date = [NSDate dateWithTimeIntervalSince1970:[timeStamp intValue]];   ...[2019/2/13]

UITapGestureRecognizer 的用法(轻触手势识别器)

最近在项目中用到了手势操作,键盘回收时还是挺常用的,现在总结下,多谢网络上大神们的分享。 先分享下我在项目中用的代码: UITapGestureRecognizer * mytap=[[UITapGestureRecognizer alloc]initWithTarget:self a...[2019/2/11]

UIScrollView属性及其代理方法

一、UIScrollView是什么? 1、UIScrollView是滚动的view,UIView本身不能滚动,子类UIScrollview拓展了滚动方面的功能。 2、UIScrollView是所有滚动视图的基类。以后的UITableView,UITextView等视图都是继承于该类。 使...[2019/2/11]

UITableView 基本使用方法总结

1.、首先,Controller需要实现两个  delegate ,分别是  UITableViewDelegate 和  UITableViewDataSource2、然后 UITableView对象的 delegate要设置为 self。3、 然后就可以实现这些d...[2019/2/1]

断言NSAssert的使用

1. NSA ert 断言(NSA ert)是一个宏,在开发过程中使用NSA ert可以及时发现程序中的问题。 NSA ert声明如下: #define NSA ert(condition, desc, ...) condition:条件表达式。条件成立时,运行后面程序...[2019/1/31]

iOS与硬件通讯(socket,data拼接,发送指令)

最近项目中用到了iPad驱动硬件来工作,也就是智能硬件的实现。下面简单说下原理,详细说下socket,wifi通信,数据处理接收,发送,以及数据解析代码。 首先,来说下通信。因为硬件部件比较多,我们采取的是,iPad与主控板进行交换数据,主控板来与各硬件部件进行通信。看图:   &nbs...[2019/1/29]

iOS在framework中使用CoreData出现崩溃问题及解决方法

公司项目中有一个功能,保存授权令牌数据。最开始只有一条数据,所以就直接保存在了userdefaults中。后来需要两条数据,还是保存在userdefaults中,其中一条为固定的,另一条不固定可以进行替换或删除。最近又需要保存多条数据,那么usedefaults就不适合了,就考虑使用数据库。iOS...[2019/1/28]

iOS:WKWebView(19-01-25更)

以前用得不多,先开一篇,以后有遇到再补充。   1、JS 调用 OC 1-1)、添加 和 JS 约定的消息名 [self.userContentController addScriptMe ageHandler:self name:@"约定的消息名"]; ...[2019/1/28]

iOS渐变导航栏封装

由于最近开发的几个项目都有渐变导航栏,每次写的时候都要copy一堆关于导航渐变相关的代码,显得类很冗余,所以花了点时间封装了一个渐变类,直接继承就可以满足大部分需求啦,这里简单写一下心路历程: 渐变的核心几个部分: 1.状态栏的变色: 添加一个状态栏属性BooL变量 @property(n...[2019/1/28]

iOS实现图片水印与简单封装示例代码

前言: 常用的许多软件中图片加水印的功能是非常常见的,如微博,微信,今日头条等等图片上都会有。 首先我们了解一下什么是水印及其作用? 水印:在图片上加的防止他人盗图的半透明logo、文字、图标 水印的作用:告诉你这个图片从哪来的,主要是一些网站为了版权问题、广告而添加的。 ...[2019/1/28]

ios基础教程之常见的数组使用方法

一、数组的简单介绍 1.数组是一个对象,是任意类型对象地址的集合,OC的数组可以存储不同类型的对象 2.OC的数组只能存储对象,不能存放 简单的数据类型(int, float, NSInteger…)除非通过一些手段把简单数据类型变成对象。在C语言中的数组可以保存任意类型的数据。 3....[2019/1/28]

iOS10--消息通知的基本使用

官方将通知单独放在了UserNotifications.framework,使用时需要导入框架。UserNotifications.framework主要类文件: UNCalendarNotificationTrigger UNLocationNotificationTrigger U...[2019/1/25]

css隐藏移动端滚动条并且ios上平滑滚动的方法_CSS教程_CSS

css隐藏移动端滚动条并且ios上平滑滚动的方法_CSS教程_CSS

c 隐藏移动端滚动条并且ios上平滑滚动的方法 HTML代码如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&qu...[2019/1/25]

笔记:沙盒文件的创建(我懒,偷偷复制过来的,无奈脸。。。。)

首先,先总结一下如何获取Documents目录,在ios开发中,我们经常需要检索Documents目录的完整路径以便读取和写入文件,我总结了以下两种方法: 1、NSString *documentsDirectory = [NSHomeDirectory() stringByAppend...[2019/1/23]

笔记:iOS字符串的各种用法(字符串插入、字符串覆盖、字符串截取、分割字符串)(别人的代码直接复制过来的,我脸皮有点厚)

NSString* str=@"hello"; 存在代码区,不可变 NSLog(@"%@",str); 1.【字符串插入】 NSMutableString* str1=[[NSMutableStringalloc]initWit...[2019/1/22]

Swift构造

构造就是将结构体、类或枚举的实例准备好以便使用的过程。这个过程包括: (1)为实例中的每个存储属性设置初始值。 (2)执行必要的准备和初始化工作。 实例的构造过程是通过构造器来完成的。 可以在结构体、类或枚举中提供自定义的构造器,从而自定义实例的构造过程。 结构体的自定义构造器的基本用法 ...[2019/1/21]

block本质探寻八之循环引用

说明:阅读本文,请参照之前的block文章加以理解; 一、循环引用的本质 代码——ARC环境 void test1() { Person *per = [[Person alloc] init]; per.age = 10; ...[2019/1/21]

.gitignore中添加的某个忽略文件并不生效

  最近项目中,来了一新同事,协同开发的过程中,发现老是提示pod install,于是照做了,做完项目可以跑成功但发现提示我跟同事一样的问题,Podfile.lock文件需要提交,于是便提交了,然而同事拉取了我的提交日志以后便和我报了一模一样的错,需要pod install或者update一下,...[2019/1/18]

block本质探寻七之内存管理

block本质探寻七之内存管理

说明: <1>阅读本问,请参照block前述文章加以理解; <2>环境:ARC; <3>变量类型:基本数据类型或者对象类型的auto局部变量; 一、三种情形 代码 void test1() { int num = 10; ...[2019/1/18]

ios实现fastlane自动化打包

终于抽出时间来学习自动化打包了,app在测试阶段一天总会经历好几次的打包,每次打包真是身心疲惫,刚打完的包说不定就被测试妹子反应还要微调什么地方,我就真的有气没法出,打一次包怎么也得浪费十几分钟,还不能改动自己的项目,一个上午或者下午发现很快就过去了,真的很是憋屈。下面就讲述自己的项目用自动化打包...[2019/1/17]

Status bar could not find cached time string image. Rendering in-process?

在开发中,控制台经常输出“Status bar could not find cached time string image. Rendering in-proce ?” 在 Info.plist 中添加如下配置 <key>UIViewControllerB...[2019/1/17]

block本质探寻六之修改变量

说明: <1>阅读本文章,请参照前面的block文章加以理解; <2>本文的变量指的是auto类型的局部变量(包括实例对象); <3>ARC和MRC两种模式均适用; 一、无法修改的原因 代码   很明显,强行给age赋值会报...[2019/1/17]

笔记:long、longlong、int、float、NSString相互转换

NSString *string = @"123"; 1.字符串转int int intString = [string intValue]; 2.int转字符串 NSString *stringInt = [NSString stringWithFormat:@"%d",intSt...[2019/1/17]

Swift 产生 uuid

  项目中、需要客户端生成一个唯一的识别码   let uuid = UUID().uuidString print(uuid)   原文链接:http: www.cnblogs.com/jukaiit/p/10277820.html[2019/1/17]

Swift中 删除Array的元素对象

Swift中Array的删除对象 在Swift中数组Array没有removeObject的方法 1、找到下标 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color:...[2019/1/16]

block本质探寻五之atuto类型局部实例对象

说明:阅读本文章,请参考之前的block文章加以理解; 一、栈区block分析 代码 ARC void test1() { { Person *per = [[Person alloc] init]; per.age = 10; ...[2019/1/16]

BAT面试总结——iOS开发高级工程师

序言 之前也面试别人,现在轮到自己找工作,怎么说呢,现在轮到自己出去面试,怎么说呢,其实还是挺紧张的,原以为自己不会因此紧张或者焦虑,实际上,还是有的,在没找到合适的工作的时候,甚至晚上有点睡不着觉,总觉着有什么事压在心头,睡觉都不安心。既然睡不着,那还是看看资料吧,我有个习惯,睡前看点问题,第二...[2019/1/16]

block本质探寻四之copy

说明: <1>阅读本文,最好阅读之前的block文章加以理解; <2>本文内容:三种block类型的copy情况(MRC)、是否深拷贝、错误copy;   一、MRC模式下,三种block类型的copy情况 代码 void test1(...[2019/1/15]

presentedViewController 和 presentingViewController 以及 dismissViewControllerAnimated 的使用

在日常的开发中,多控制器之间的跳转除了使用push的方式,还可以使用 present的方式,present控制器时,就避免不了使用 presentedViewController、presentingViewController ,这两个概念容易混淆,简单介绍一下。 1:present 控制器的...[2019/1/15]

NavigationController

实际开发中都是多控制器的;用一个控制器(父)管理多个控制器(子) ios提供2个特殊的(父)控制器 UINavigationControler 简介 导航控制器,可以轻松完成多个控制器之间的切换,其结构包含导航条(y=20)、栈顶控制器的view、导航控制器的view。导航控制器需...[2019/1/15]

谈谈iOS获取调用链

iOS开发过程中难免会遇到卡顿等性能问题或者死锁之类的问题,此时如果有调用堆栈将对解决问题很有帮助。那么在应用中如何来实时获取函数的调用堆栈呢?本文参考了网上的一些博文,讲述了使用mach thread的方式来获取调用栈的步骤,其中会同步讲述到栈帧的基本概念,并且通过对一个demo的汇编代码的讲解...[2019/1/15]

关于NSStringFromClass的一点见解

关于NSStringFromClass的一点见解

今天做项目的时候遇到一个需求,就是子view视图弹出时,屏蔽掉父view的所有手势,然后想到用 UIGestureRecognizerDelegate代理方法,中间省一些文字(无奈脸),言归正传,NSStringFromCla 其实是用来判断类型的,看代码 MyModel *model=[M...[2019/1/14]

UITableView编辑模式大全解

  1、UITableView 的编辑模式 进入编辑模式 代码体现 设置 editing 属性 tableView?.editing = true 这个设置的时候是有动画效果的 tableView.setEditing(true, animated: true...[2019/1/14]

iOS 多线程:『GCD』详尽总结

iOS 多线程:『GCD』详尽总结

本文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法。这大概是史上最详细、清晰的关于 GCD 的详细讲解+总结的文章了。通过本文,您将了解到: 1. GCD 简介 2. GCD 任务和队列 3. GCD 的使用步骤 4. GCD 的基本使用(6种不同组合区别) 5. GCD...[2019/1/11]

block本质探寻三之block类型

一、oc代码 提示:看本文章之前,最好按顺序来看; 代码 void test1() { int age = 10; void(^block1)(void) = ^{ NSLog(@"block1----"); }; ...[2019/1/11]

block本质探寻一之内存结构

一、代码——命令行模式 main.m #import <Foundation/Foundation.h> struct __block_impl { void *isa; int Flags; int Reserv...[2019/1/10]

block本质探寻二之变量捕获

一、代码 说明:本文章须结合文章《block本质探寻一之内存结构》和《cla 和object_getCla 方法区别》加以理解; main.m #import <Foundation/Foundation.h> int a = 10; static int b ...[2019/1/10]

dispatch_sync和dispatch_async的区别

dispatch_sync 线程同步、dispatch_async线程异步 同步 dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSLog...[2019/1/10]

555
8
记录数:496 页数:7/10首页上一页12345678910下一页尾页
加载更多