06 2017 档案
摘要:总结了几个月的东西终于能和大家分享了,不多说,直接看东西! 1、禁止手机睡眠 1 [UIApplication sharedApplication].idleTimerDisabled = YES; 1 [UIApplication sharedApplication].idleTimerDisab
阅读全文
摘要:从2月14日开始,上传程序的同学可能会遇到提示上传失败的提示. 并且打开自己的钥匙串,发现所有的证书全部都显示此证书签发者无效. 出现以下情况: Failed to locate or generate matching signing assetsXcode attempted to locate
阅读全文
摘要:版权声明:本文为博主原创文章,未经博主允许不得转载。 版权声明:本文为博主原创文章,未经博主允许不得转载。 如果IOS App 使用到CoreData,并且在上一个版本上有数据库更新(新增表、字段等操作),那在覆盖安装程序时就要进行CoreData数据库的迁移,具体操作如下: 1.选中你的mydat
阅读全文
摘要:如果iOS App 使用到CoreData,并且在上一个版本上有数据库更新(新增表、字段等操作),那在覆盖安装程序时就要进行CoreData数据库的迁移,具体操作如下: 1.选中你的mydata.xcdatamodeld文件,选择菜单editor->Add Model Version 比如取名:my
阅读全文
摘要:--UIKit之UITableView 概述 在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信、QQ、新浪微博等软件基本上随处都是UITableView。当然它的广泛使用自然离不开它强大的功能,今天这篇文章将针对UITableVie
阅读全文
摘要:1、轻拍手势 1⃣️设置触控对象,和轻拍的次数 2、捏合手势 3、旋转手势 4、平移手势 5、边缘轻扫手势 6、长按手势 7、轻扫手势 给imageView视图添加手势 当一个视图上想要添加多种手势的时候就要用到手势的代理(重点) pragma mark 手势的代理方法
阅读全文
摘要:1、UIGestureRecognizer 介绍 手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性。 iOS 系统在 3.2 以后,他提供了一些常用的手势(UIGestureRecognizer 的子类),开发者可以直接使用他们进行手势操作。 UIPanGestureRecogni
阅读全文
摘要:文章只要你有一点点基础应该就可以看的懂,文章只为学习交流 #import "ViewController.h" @interface ViewController () @property (nonatomic,retain)UIImageView *imageView; @property (no
阅读全文
摘要:respondsToSelector相关的方法 : -(BOOL) isKindOfClass: classObj 用来判断是否是某个类或其子类的实例 -(BOOL) isMemberOfClass: classObj 用来判断是否是某个类的实例 -(BOOL) respondsToSelector
阅读全文
摘要:在码代码过程中,我们经常用到MBProgressHUD,但我很少实例化使用,一般都是偷个懒直接显示隐藏,这里贴上详解,以便日后有样式要求时使用。 1,MBProgressHUD常用属性和用法Demo - (void)testMBProgressHUD { NSLog(@"test MBProgres
阅读全文
摘要:MBProgressHUD提示框官网地址:https://github.com/jdg/MBProgressHUD 一. 模式 首先, MBProgressHUD有以下几种视图模式. mode属性指定显示模式 默认使用的系统自带指示器 默认使用的系统自带指示器 饼图 饼图 进度条 进度条 圆环 圆环
阅读全文
摘要:iOS中UITextField 使用全面解析 //初始化textfield并设置位置及大小 //设置边框样式,只有设置了才会显示边框样式 //设置输入框的背景颜色,此时设置为白色 如果使用了自定义的背景图片边框会被忽略掉 //设置背景 //设置背景 //当输入框没有内容时,水印提示 提示内容为pas
阅读全文
摘要:相等的概念是探究哲学和数学的核心,并且对道德、公正和公共政策的问题有着深远的影响。 从一个经验主义者的角度来看,两个物体不能依据一些观测标准中分辨出来,它们就是相等的。在人文方面,平等主义者认为相等意味着要保持每个人的社会、经济、政治和他们住地的司法系统都一致。 对程序员来说,协调好逻辑和感官能力来
阅读全文
摘要:目录 为什么要有isEqual方法? 如何重写自己的isEqual方法? 为什么要有hash方法? hash方法什么时候被调用? hash方法与判等的关系? 如何重写自己的hash方法? 为什么要有isEqual方法? 如何重写自己的isEqual方法? 为什么要有hash方法? hash方法什么时
阅读全文
摘要:众所周知,Objective-C是一门面向对象的语言,一般情况下,我们在Objective-C中定义一个类时,总要提供一个初始化方法,一般大家都是这样写的: 这样一段简单的代码,却有很多可以思考的问题: 1、为什么要通过[super init]来调用父类的初始化方法,父类的初始化方法里又执行了什么东
阅读全文
摘要:一、继承 1、面向对象的三大特性:封装,继承,多态。 面向对象提供了继承特性。把公共的方法和实例变量写在父类里,子类只需要写自己独有的实例变量和方法即可。继承既能保证类的完整,又能简化代码。: 表示继承关系。 2、继承的特点: 1)没有父类的类称为根类,OC中的根类是NSObject(祖宗)。 2)
阅读全文
摘要:在我们的日常开发中我们经常会定义一些自己的子类继承一些UIKit 库中的类,那我们应该如何重写的这些初化方法呢?那我们先看看这些类有哪些初初化方法吧。(这里就用UIView为例) - (id)init; - (nullable instancetype)initWithCoder:(NSCoder
阅读全文
摘要:昨天介绍了OC中类的定义和使用:http://blog.csdn.net/jiangwei0910410003/article/details/41657603,今天我们来继续学习类的初始化方法和点语法的使用 一、首先来看一下类的初始化方法 在Java中我们知道一个每个类都有构造方法,这里的初始化方
阅读全文
摘要:if (customAlertView==nil) { customAlertView = [[UIAlertView alloc] initWithTitle:@"自定义服务器地址" message:nil delegate:self cancelButtonTitle:@"取消" otherBu
阅读全文
摘要:首先,视图控制器必须得实现协议UIAlertViewDelegate中的方法,并指定delegate为self,才能使弹出的Alert窗口响应点击事件。 具体代码如下: ViewController.h中的代码如下: [cpp] view plain copy #import <UIKit/UIKi
阅读全文
摘要:做iOS开发的同学想必都用过UIAlertVIew或者UIActionSheet。UIAlertVIew 可以弹出一个出现在屏幕中间的提示视图,给用户展示信息,并让用户自己选择操作,UIActionSheet可以弹出一个选择列表,让用户选择列表中的某一项操作。使用UIAlertVIew和UIActi
阅读全文
摘要:atomic 设置成员变量的@property属性时,默认为atomic,提供多线程安全。 在多线程环境下,原子操作是必要的,否则有可能引起错误的结果。加了atomic,setter函数会变成下面这样: {lock} if (property != newValue) { [property rel
阅读全文
摘要:内容概述: 本文主要讲述了ios中多种声明变量方式的区别与联系,以及@interface声明的成员变量与@property属性的差异。最后介绍了推荐的声明方式。 atany原创,转载请注明博主与博文链接,3Q,未经博主允许,不得进行商业用途 http://blog.csdn.net/yang8456
阅读全文
摘要:一直搞不懂在OC中变量在@interface和@implementation中有什么区别,定义@property又有什么不同,查了很多资料,总结如下: //ViewController.h @interface ViewController : UIViewController { NSIntege
阅读全文
摘要:静态变量 当我们希望一个变量的作用域不仅仅是作用域某个类的某个对象,而是作用域整个类的时候,这时候就可以使用静态变量。 staticstatic修饰的变量,是一个私有的全局变量。C或者Java中static关键字修饰的变量,可以使用类名直接拿到这个变量对象,在其他类中可以进行修改。但是在OC中sta
阅读全文
摘要:作为一个iOS程序员初学者,会搞不清楚对象方法和类方法的区别 -(void)duixiangfangfa ; +(void)leifangfa; - 代表实例方法,它在类的一个具体实例范围内执行,也就是说,你咋调用这个方法之前必须先创建一个类的实例; + 代表类方法,可以通过类名直接调用,不需要创建
阅读全文
摘要:1. 获取磁盘总空间大小 //磁盘总空间 + (CGFloat)diskOfAllSizeMBytes{ CGFloat size = 0.0; NSError *error; NSDictionary *dic = [[NSFileManager defaultManager] attribute
阅读全文
摘要:前言: 本文仅作参考存留,请用新版封装:iOS 更加优雅便捷的UIAlertView/UIAlertController封装使用 UIAlertController是iOS8.0之后出来的新方法,其将系统原先的UIAlertView和UIActionSheet进行了规范整合。iOS9.0之后,UIA
阅读全文
摘要:工作以来公司UI设计师出的Android效果图都是iOS风格的UIAlertView和UIActionSheet,新项目还是用原来那一套,不想重复造轮子,所以仿写了从iOS8开始支持的UIAlertController,统一UIAlertView和UIActionSheet的用法 目前还不支持添加E
阅读全文
摘要:在iOS8中,只能用UIAlertController.而原来的UIAlertView及UIActionSheet已经被抛弃掉了.但是如果一台iOS 7 的手机运行到有UIAlertController的程序后,必定会崩掉.所以一般我们都要对UIAlertController进行适配. 不用着急,先
阅读全文
摘要:很多人实现单例会这样写: @implementation XXClass + (id)sharedInstance { static XXClass *sharedInstance = nil; @synchronized(self) { if (!sharedInstance) { sharedI
阅读全文
摘要:前面几篇文章中讲的所有内容,都是在同一个模型版本上进行操作的。但在真实开发中,基本上不会一直停留在一个版本上,因为需求是不断变化的,说不定什么时候就需要往模型里添加新的字段,添加新的模型,甚至是大规模的重构;所以数据的迁移就显得尤为重要了。CoreData 中,数据迁移本质就是把旧的 SQLite
阅读全文
摘要:我们知道 CoreData 里存储的是具有相同结构的一系列数据的集合,TableView 正好是用列表来展示一系列具有相同结构的数据集合的。所以,要是 CoreData 和 TableView 能结合起来,CoreData 查询出来的数据能同步地显示在 TableView 上,更好一点就是 Core
阅读全文
摘要:通常情况下,CoreData 的增删改查操作都在主线程上执行,那么对数据库的操作就会影响到 UI 操作,这在操作的数据量比较小的时候,执行的速度很快,我们也不会察觉到对 UI 的影响,但是当数据量特别大的时候,再把 CoreData 的操作放到主线程中就会影响到 UI 的流畅性。自然而然地我们就会想
阅读全文
摘要:上篇博客中讲了 CoreData 里增删改查的使用,学到这里已经可以应对简单的数据存储需求了。但是当数据模型复杂起来时,例如你的模型类中除了要存储 CoreData 里支持的数据类型外,还有一些自定义的数据类型,这个时候只靠单一的模型结构就没办法来满足这种需求了,于是我们就需要使用关联表结构,也就是
阅读全文
摘要:在上篇博客中,讲了数据模型和 CoreData 栈的创建,那下一步就是对数据的操作了。和数据库一样,CoreData 里的操作也无非是增删改查。下面我们将逐步讲解在 CoreData 中进行增删改查的方式。 基本的增删改查 插入条目 先来看一下插入条目的方式,在插入之前,我们需要先创建要插入的数据,
阅读全文
摘要:CoreData 是 Cocoa 平台上用来管理模型层数据和数据持久化的一个框架,说简单点,就是一个数据库存储框架。CoreData 里相关的概念比较多,而且初始化也非常繁琐,所以对初学者的学习还是有一些困难的。这篇文章将从头到尾详细地讲一遍 CoreData 的使用方法,从 CoreData 的初
阅读全文
摘要:一.CoreData是什么? CoreData是iOS SDK里的一个很强大的框架,允许程序员以面向对象的方式存储和管理数据。使用CoreData框架,程序员可以轻松有效地通过面向对象的接口管理数据 CoreData是一个模型层的技术。帮助建立代表程序状态的模型层,CoreData也是一种持久化技术
阅读全文
摘要:iOS CoreData介绍和使用(以及一些注意事项) 最近花了一点时间整理了一下CoreData,对于经常使用SQLite的我来说,用这个真的有点用不惯,个人觉得实在是没发现什么亮点,不喜勿喷啊。不过这门技术的出现也有其存在价值,这是不可否认的事实,即使是不喜欢我们也得去了解一下,因为你不用别人会
阅读全文
摘要:大家好~之前项目中一直用的是fmdb进行本地数据持久化,最近在项目中用到了CoreData,,所以这次就简单发个文章,方便新人来更好的使用CoreData,本篇文章简单实现了利用CoreData实现对数据的增删改查。话不多说,直接进入正题~ 创建工程,创建的时候,记得勾选上Use Core Data
阅读全文
摘要:这些事跨平台编程导致的; 一、数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较: 16位平台 char
阅读全文
摘要:iOS CoreData介绍和使用(以及一些注意事项) 最近花了一点时间整理了一下CoreData,对于经常使用SQLite的我来说,用这个真的有点用不惯,个人觉得实在是没发现什么亮点,不喜勿喷啊。不过这门技术的出现也有其存在价值,这是不可否认的事实,即使是不喜欢我们也得去了解一下,因为你不用别人会
阅读全文
摘要:Core Data是一个功能强大的层,位于SQLite数据库之上,它避免了SQL的复杂性,能让我们以更自然的方式与数据库进行交互。Core Data将数据库行转换为OC对象(托管对象)来实现,这样无需任何SQL知识就能操作他们。 Core Data位于MVC设计模式中的模型层,一般需要在设备上存储结
阅读全文
摘要:摘要: iOS中sqlite3框架可以很好的对sqlite数据库进行支持,通过面向对象的封装,可以更易于开发者使用。 使用iOS原生sqlite3框架对sqlite数据库进行操作 一、引言 sqlite数据库是一种小型数据库,由于其小巧与简洁,在移动开发领域应用深广,sqlite数据库有一套完备的s
阅读全文
摘要:SQLite3使用 SQLite简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。 SQLite3 在XCode工程中,打开targets,在Build Phases下导入Libsqlite.tbd,在需要使用sqlite3的位置导入头文件即可
阅读全文
摘要:本文主要介绍几个我遇到的总结的高级用法(当然我相信肯定有不少比这还高级的)。 简单的storyboard中上下左右约束,固定宽高啥的用法在这里就不做赘述了。 autolayout自动布局是iOS6以后出现的,但是在开始的一段时间里大家并不怎么会用,都是一上来先勾掉。之后随着5s,iPhone6的出现
阅读全文
摘要:前言: 没有理由不去努力.png 正文:想实现UILabel居上对齐,居中对齐,居下对齐,如下效果: 效果图.png 在iOS中默认的UILabel中的文字在竖直方向上只能居中对齐,博主参考国外网站,从UILabel继承了一个新类,实现了居上对齐,居中对齐,居下对齐 具体如下: 创建:MYLabel
阅读全文
摘要:本章实现效果: Untitled.gif 前言: 项目中很多需求是要求自定义标题栏居中的,本人最近就遇到这中需求,如果用系统自带的titleView设置的话,不会居中,经过尝试,发现titleview的起点位置和尺寸依赖于leftBarButtonItem和rightBarButtonItem的位置
阅读全文
摘要:项目要做这样一个效果的启动页。 考虑到版本号是会不断变更的,因此采用动画效果启动页,让版本号动态加载iOS启动页动画效果 - 简书 考虑到屏幕适配问题,因此采用代码对视图添加约束。在添加约束的过程中遇到了一些问题,在此做一下记录和总结. 代码实现autolayout的注意点: 1.要先禁止autor
阅读全文
摘要:1、概念介绍 线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,多线程先后更改数据会产生数据不一致或者数据污染的情况。 一般使用synchro
阅读全文
摘要:ArrayList和Vector有什么区别?HashMap和HashTable有什么区别?StringBuilder和StringBuffer有什么区别?这些都是Java面试中常见的基础问题。面对这样的问题,回答是:ArrayList是非线程安全的,Vector是线程安全的;HashMap是非线程安全的,HashTable是线程安全的;StringBuilder是非线程安全的,StringBuf...
阅读全文
摘要:有许多原因促成了泛型的出现,而最引人注意的一个原因,就是为了创建容器类。 泛型类 容器类应该算得上最具重用性的类库之一。先来看一个没有泛型的情况下的容器类如何定义: Container类保存了一对key-value键值对,但是类型是定死的,也就说如果我想要创建一个键值对是String-Integer
阅读全文
摘要:Java中的泛型的使用: 1.普通的泛型使用 在使用类的时候后面的中的类型就是我们确定的类型。 public class MyClass1 {//此处定义的泛型是T private T var; public T getVar() { return var; } public void setVar(T var) { th...
阅读全文
摘要:一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: 定义了一个List类型的集合,先向其中加入了两个字符串类型的值,随后加入一个Integer类型的值。这是完全允许的,因为此时list默认的类型为Object类型。在之后的循环中,由于忘记了之前在list中也加入了Integ
阅读全文
摘要:在Java中,java.security.MessageDigest (rt.jar中)已经定义了 MD5 的计算,所以我们只需要简单地调用即可得到 MD5 的128 位整数。然后将此 128 位计 16 个字节转换成 16 进制表示即可。 下面是一个可生成字符串或文件MD5校验码的例子,测试过,可
阅读全文
摘要:SQLite是Android系统内置的一款轻量级的关系型数据库,它的运算速度非常快,占用资源很少,通常只需要几百K的内存就足够了。SQLite不仅支持标准的SQL语法,还遵循了数据库的ACID事务。 模拟一个应用场景:进行一次转账操作,银行会将转账的金额先从你的账户中扣除,然后再向收款方的账户中添加
阅读全文
摘要:在项目开发中,我们或多或少都会用到数据库。在Android中,我们一般使用SQLite,因为Android在android.database.sqlite包封装了很多SQLite操作的API。我自己写了一个Demo来总结SQLite的使用,托管在Github上,大家可以点击下载APK,也可以点击下载
阅读全文
摘要:删除某一表: [java] view plain copy //删除某一个表 public void dropTable(SQLiteDatabase db){ db.execSQL("drop from tab_name"); } [java] view plain copy [java] vie
阅读全文
摘要:在我们写修改信息或者搜索,修改密码等界面的时候,用户进入这个界面的主要目的就是输入修改/查找 某些信息,为了用户体验应该自动弹出软键盘而不是让用户主动点击输入框才弹出。 1.软键盘的自动弹出 private void showKeyboard(){ InputMethodManager inputM
阅读全文
摘要:Java语言里没有2进制直接表示法,原因是太长了,需要的化可以使用16进制 8: 前置 0 10: 不需前置 16: 前置 0x 或者 0X 一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制 16进制数必须以 0x开头。比如 0x1表示一个16进制
阅读全文
摘要:本篇博客阐述的范围仅限于Android:shape=“rectangle”,即方形。 shape是用于定义一些形状的样式,经常用于在Android开发中控制控件的背景,使用起来不难。shape一共有六个属性,分别是corners、gradient、padding、size、solid、stroke,
阅读全文
摘要:说明 在Android开发中,使用shape可以很方便的帮我们画出想要的背景,相对于png图片来说,使用shape可以减少安装包的大小,而且能够更好的适配不同的手机。 使用 先贴出官网上的说明: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:
阅读全文
摘要:如何在Android开发中合理的使用enum 欢迎大家访问我的Github开源库,这里有好玩的App源码,想和大家分享。https://github.com/ChoicesWang 转载请注明:http://blog.csdn.net/zezeviyao/article/details/46695367 我们都知道,enum最早出现在C、C++、C#中。 而在 JDK1.5之后,Java中...
阅读全文
摘要:在Android中实现异步任务机制有两种方式,Handler和AsyncTask。 Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易
阅读全文
摘要:如果我们想在子线程上创建Handler,通过直接new的出来是会报异常的比如: [java] view plain copy new Thread(new Runnable() { public void run() { Handler handler = new Handler(){ @Overr
阅读全文