- 博客(46)
- 收藏
- 关注
原创 IOS开发中的几种设计模式介绍
ios开发学习中,经常弄不清楚ios的开发模式,今天我们就来进行简单的总结和探讨~(还有)Target-Action模式 MVVM模式 MVVM:Model-View-ViewModel 由于MVC设计模式中Controller负载太大(网络请求、数据解析等等都处于Controller中) * 为了解决这个问题抽离出一层(ViewController
2016-01-26 11:16:11 404 1
转载 [Cocoa]深入浅出 Cocoa 之 Core Data(1)- 框架详解
深入浅出 Cocoa 之 Core Data(1)- 框架详解罗朝辉(http://blog.csdn.net/kesalin)CC 许可,转载请注明出处Core data 是 Cocoa 中处理数据,绑定数据的关键特性,其重要性不言而喻,但也比较复杂。Core Data 相关的类比较多,初学者往往不太容易弄懂。计划用三个教程来讲解这一部分:框架详解:讲解 Core data
2016-03-12 17:29:24 479
转载 App推送功能-APNS
1.APNS-苹果推送服务器消息(Apple Push Notification Service)2.Token- (“令牌”) 由苹果返回,接收消息3.Server(自己的推送服务器)->APNS->手机Provider是给你手机应用发出推送消息的服务器,而APNS(Apple Push Notification Service)则是苹果消息推送服务器。你本地的服务器当需
2016-03-12 17:26:59 511
转载 用单例的方法实现夜间模式
为了应对用户的需求,在夜间的时候由于屏幕背景色太亮,导致眼睛受到过于强烈的光线刺激,大部分App加入了夜间模式的功能.实现夜间模式的方式有很多种,那么本文将采用单例的方式去达到这一目的.实现夜间模式的样例如上动态图上图1,首先创建一个单例,继承于NSObject, 如图是一个便利构造器方法, 先是创建一个类的静态变量, 并设置为空, 意思就是
2016-02-24 16:30:06 811
原创 多线程
//多线程 // 单线程: 在应用程序启动的时候,会自动创建一个线程。该线程为主线程。只有一个主线程的应用程序为单线程应用程序。在主线程的代码会顺序执行。 // 单线程程序的问题:在程序运行的过程中难免会需要请求数据、解析数据等等很多耗时的任务。这时如果把所有的任务都放在主线程中执行会造成程序的假死现象,用户交互不好。 // 为了提高用户的交互性,
2016-01-26 11:17:11 421
原创 数据解析
// 异步下载- (IBAction)getRequestAsync:(UIButton*)sender { // 1.请求网址 NSURL *url = [NSURL URLWithString:kImage]; // 2.创建请求对象 NSURLRequest *request = [NSURLRequestrequestWit
2016-01-26 11:16:31 306
原创 事件处理
事件类型分三类:触摸事件、晃动事件、远程控制事件touches..began、touches..moved、touches...ended、touches..canceled。UIResponder (响应者)响应者链是 :由多个响应者对象组成的链。UIApplication -> window -> viewController -> vi
2016-01-26 11:15:41 287
原创 数据库:DDL、DML
数据库:DDL、DMLDDL:数据定义语言(Data Define language) (创建数据库create、创建表格create table、删除数据库 drop 、删除表格 drop table)DML:数据操作语言(Data Manipulate language) : 增(insert)、删(delete)、改(update)、查(select) —凡是对数据的操作都
2016-01-26 11:14:58 435
原创 沙盒
- (IBAction)sandBox:(id)sender { // 沙盒:指的是苹果系统为应用程序创建的唯一的文件夹。 // 注意事项:1.沙盒的名字是唯一的也是随机的。由系统提供。 // 2.每个应用程序,只能访问自己沙盒内部的文件。 // 沙盒文件夹下面对应三个文件夹: // Documents
2016-01-26 11:14:28 341
原创 XML数据解析
// XML解析// 解析:从事先约定好的格式中获取数据。// 在进行数据解析时主要分为:// 数据提供方:在真正开发时数据提供方是服务器。// 数据格式:格式主要分为两种XML格式和JSON格式。// 在实际开发中服务器返回的数据格式80%的情况下是JSON,少数情况下是XML。// * DOM解析工具: 使用GDataXMLNode进行解析,是Google提供
2016-01-26 11:14:01 388
原创 可视化编程
可视化编程: // xib\autolayout\storyboard\sizeclasses // xib:可以简单的把xib文件理解成一个View。xib可以简化代码(控件)创建的时间。 // autolayout:自动布局。主要是让xib或者是storyboard自行决定一个控件的位置。注意事项: // =》 1.autolayout的核心在于“约束”
2016-01-26 11:13:37 573
转载 推荐:ARC下需要注意的内存管理
者:一不来自:http://www.jianshu.com/p/556ba33fa498之前发了一篇关于图片加载优化的文章,还是引起很多人关注的,不过也有好多人反馈看不太懂,这次谈谈iOS中ARC的一些使用注意事项,相信做iOS开发的不会对ARC陌生啦。这里不是谈ARC的使用,只是介绍下ARC下仍然可能发生的内存泄露问题,可能不全,欢迎大家补充。Ps:关于ARC的使用以及内存管理
2016-01-26 11:13:03 376
原创 标签视图
tabBar是UITabBar对象, 包含多个UITabBarItem,每一个tabBaritem对应一个viewController.tabBar高度49三大视图 :UITabBarController、 UINavigationController、UITabViewController 通常组合出现;UITabBarController可以嵌套UINavigationCo
2016-01-26 11:10:39 348
原创 UITabBarController- 标签视图控制器
请问self.navigationItem.title和self.title的区别在于什么地方?答:self.navigationItem.title用于设置导航条的标题 self.title也可以设置导航条的标题,但是如果在导航控制器又存在标签控制器的话,self.title会对他们都起作用—> Block: 匿名
2016-01-26 11:09:57 348
原创 Block简介及写法
一:Block简介Block的实际行为和Function很像,最大的差别是在可以存取同一个Scope的变量值。Block实体形式如下:^(传入参数列){行为主体};Block实体开头是“^”,接着是由小括号所包起来的参数列(比如 int a, int b, int c),行为主体由大括号包起来,专有名字叫做block literal。行为主体可以用return回传值,类型会被compi
2016-01-26 11:08:48 712
原创 UITableView 编辑
tableView的编辑:cell的添加、删除。使⽤场景: 删除⼀个下载好的视频,删除联系⼈; 插⼊⼀条新的聊天记录等编辑:1、让tableView处于编辑状态TableView⽅法- (void)setEditing:(BOOL)editing animated:(BOOL)animated;2、指定tableView哪些⾏可以编辑TableView
2016-01-26 11:07:25 294
原创 UITableView标示图
UITableView 标示图:表视图 UITableView,iOS中最重要的视图,随处可⻅。表视图通常⽤来管理⼀组具有相同数据结构的数据。UITableView继承⾃UIScrollView,所以可以滚动表视图的每⼀条数据都是显⽰在UITableViewCell对象中表视图可以分区显⽰数据,每个分区称为⼀个section,每⼀⾏称为 row,编号都是从0开始属性
2016-01-26 11:07:01 311
原创 UINavigationControl、界面通信
UINavigationControl (导航控制器)导航控制器可以认为是管理控制器的控制器,主要管理有层级关系的 控制器。UINavigationController继承于UIViewController,以栈的⽅式管理所 控制的视图控制器,⾄少要有⼀个被管理的视图控制器,这个控制器 我们称作,导航控制器的根视图控制器。⼯作原理:UINavigationContr
2016-01-26 11:06:37 359
原创 UIScrollView、UIPageControl
UIscrollViewUIScrollView是可以滚动的view,UIView本⾝不能滚动,⼦类 UIScrollview拓展了滚动⽅⾯的功能。UIScrollView是所有滚动视图的基类。以后的UITableView, UITextView等视图都是继承于该类。使⽤场景:显⽰不下(单张⼤图);内容太多(图⽂混排);滚动 头条(图⽚);相册等核⼼功能:UIScrol
2016-01-26 11:06:12 311
原创 UIControl及其子类
UISegmentedControl常⽤⽅法和属性:nitWithItems: //UISegmentedControl独有的初始化⽅法,⽤来创建多个分段setTitle: forSegmentAtIndex: //为指定下标的分段设置titleselectedSegmentAtIndex //(property)被选中的segmenttintColor //(property
2016-01-26 11:05:30 365
原创 设计模式、手势识别器
耦合: 1.耦合是衡量程序写的好坏的标准之一 2.耦合是衡量模块与模块之间关联程度的指标 3.”高内聚, 低耦合” 是面向对象编程的核心思想// Target-action设计模式是模仿了系统中的button.将用户要做什么事情交给外界来处理,而不是在内部写死,提高了代码的通用性// Target-action设计模式只要是为了分离事
2016-01-26 11:04:46 326
转载 iOS中的触摸事件和手势处理
iOS中的事件可以分为三大类: 1> 触摸事件 2> 加速计事件 3> 远程控制事件响应者对象 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为"响应者对象". UIApplication,UIViewController,UIView都继承自UIRespond
2015-12-04 14:54:24 361
转载 OC内存管理和内存管理原则
内存管理 范围:任何继承了NSObject 的对象,对基本数据类型无效 原理:每个对象内部都保存了一个与之相关联的整数,称为引用计数器(auto reference count)每当使用 alloc、new或者copy创建一个对象时,对象的引用计数器被设置为1给对象发送一条retain消息(即调用retain方法),可以使引用计数器
2015-11-18 19:31:52 324
原创 OC 重点之NSArray(数组) NSDictionary不可变字典类与NSMutableDictionary 可变字典类 (概括)
————————————————————NSArray(数组)————————————————————- 1、 OC提供了 数组 类 NSArray 帮我们存放了一组数据, 这些数据靠下标标识, 下标从0开始 注意: IOS开发中, 凡是涉及到下标, 无论什么类, 下标始终都是从0开始的. 与C语言的数组不同, OC的数组只能存放对象. 基本数据类型无法直接储存到数组去, 只能通过转换为NSNumber类型来储
2015-11-18 17:43:57 442
原创 数组的常用方法(不可变:NSArray, 可变:NSMutableArray)
#import int main(int argc, const char * argv[]) {// 不可变数组 - NSArray// ---常用方法---// 数组的初始化NSArray *firstArray = [NSArray arrayWithObject:@"one"];// 多个元素初始化时,注意以nil作为数组的结束N
2015-11-18 14:48:03 335
原创 NSDate和NSDateFormatter
#import #import "NSString+PrintfString.h"int main(int argc, const char * argv[]) {// 系统中 表示时间日期的类 NSDate// 初始化一个日期// NSDate *date = [NSDate date];// 打印出来的 是格林威治治时间0时区(咱们在东8区)// NSLog
2015-11-18 14:46:55 347
原创 C语言---迷宫游戏 代码
//10行10列的数组地图char map[10][10] ={ //10行10列的数组地图 {'#','#','#','#','#','#','#','#','#','#'},//0 {'#','0',' ',' ',' ','#',' ','#',' ',' '},//1 {'#','#',' ','#','#','#',' ','#',' ',
2015-11-18 10:41:31 2153
原创 OC字典
// 字典 是一个容器 跟数组一样 可以保存数据// 保存的形式 是以 键值对的形式保存// 一个key对应一个value// key和value 必须是对象// key作为钥匙 要具有唯一性 在开发中 一般使用字符串作为key值// value 可以是一个很复杂的结构 例如字典里嵌套字典等// 字典里保存的键值对 是无序的// key value/
2015-11-18 10:37:09 334
原创 Block
#import #import "Person.h"// 给block起别名//typedef (^这写新名字)();int sumValue(int a, int b){return a + b;}int resultTwoNumber(int num1, int num2, int (^block)(int a, int b)){return b
2015-11-18 10:35:37 363
原创 OC试题 ——通讯录(AddressBook)
要求描述:⽤用OC语⾔言完成简易通讯录(实现增删改查)功 能.(注:使⽤用MRC)⼀一、功能描述:main函数中通过使⽤用Person类和AddressBook类,创建对象、调⽤用⽅方法,实现以下8个功能 :中. 话:456);1).使⽤用便利构造器创建四个Person类的实例(联系⼈人).姓名:Lucy性别:⼥女 电话:123
2015-11-18 10:26:59 1180 1
原创 NSString和NSMutableString的使⽤ NSArray和NSMutableArray的初级使⽤
int main(int argc, const char * argv[]) {#pragma mark --字符串// 学习系统类// 1.利用系统的类 初始化对象出来// NSString *str = @"123";// 自定义初始化方法// NSString *str = [[NSString alloc]initWithFormat:@"wang
2015-11-18 10:25:20 282
转载 关于iOS 中retainCount=-1和一长串数字疑解
根据苹果的官方文档https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html上面写着应该返回的是这个对象的UINT_MAX, 并且不会释放, 这个UINT_MAX最大二进制为(1111
2015-11-18 10:24:19 1122
原创 OC-retain,copy,assign及autorelease
一,retain, copy, assign区别1. 假设你用malloc分配了一块内存,并且把它的地址赋值给了指针a,后来你希望指针b也共享这块内存,于是你又把a赋值给(assign)了b。此时a 和b指向同一块内存,请问当a不再需要这块内存,能否直接释放它?答案是否定的,因为a并不知道b是否还在使用这块内存,如果a释放了,那么b在使用这块内存的时候会引起程序crash掉。
2015-11-18 10:23:34 318
原创 OC中级通讯录
做一个班级信息程序,包含4个自定义的类:OurClass、Teacher、Student、Person。OurClass代表班级,⾥⾯包含一个Teacher对象,和一个NSMutableArray(用于存放多个Student对象)班级能够更换老师,能够增添学生和移除学生。Person类作为Student、Teacher类的父类,定义公共属性和⽅法。Student包含一个成绩属性(NSMut
2015-11-18 10:21:52 668
原创 Memory Management Policy(内存管理政策)
内存管理政策 用于内存管理的基本模型采用引用计数的环境中提供的组合方法中定义NSObject协议和标准方法的命名约定。dealloc NSObject类也定义了一个方法,这是自动调用对象时收回。本文描述了所有你需要知道的基本规则在可可程序正确地管理内存,并提供正确使用的一些示例。基本内存管理规则 内存管理模型是基于对象的所有权。任何对象可能有一个或多个用户。
2015-11-18 10:18:49 545
原创 OC内存管理
1.内存管理的方式(1)垃圾回收(gc)(2)MRC(Manual Reference Count)(3)ARC(Auto Reference Count)//垃圾回收机制(gc):由系统管理内存, 开发人员不需要管理内存//OC从2.0版本加入垃圾回收机制//在iOS平台中不支持OC的垃圾回收机制, MacOC平台支持//iOS没有垃圾回收机制, 那么
2015-11-18 10:17:37 344
原创 OC属性Property-(摘要)
1.属性//属性:为你自动生成setter和getter//能在⼀定程度上简化程序代码,并且增强实例变量的访问安全性//属性声明的写法//@property 数据类型 实例变量名;//属性实现的写法//@synthesize 实例变量名;2.属性的修饰符//修饰符, 实质是对setter和getter方法的限定//(1)线程安全组
2015-11-18 10:16:54 354
原创 objective-c 中数据类型之一 几何数据类型(NSPoint,NSSize,NSRect)
// NSPoint 结构体数据原型, 用于声明一个点;/* Points. */ struct CGPoint { CGFloat x; CGFloat y;};typedef struct CGPoint CGPoint; typedef CGPoint NSPoint; // 用法; // 1. 声明一个NSPoint变量,初始化时
2015-11-18 10:15:21 387
转载 setValue和setObject的区别
在使用NSMutableDictionary的时候经常会使用setValue forKey与setObject forKey,他们经常是可以交互使用的,代码中经常每一种的使用都有。1,先看看setValue: forKey:的定义@interface NSMutableDictionary(NSKeyValueCoding)/* Send -setObject:
2015-11-18 10:14:39 373
原创 NSArray的4种遍历方式
一. for循环Student *stu = [Student student]; NSArray *array = [NSArray arrayWithObjects:stu, @"1",@"2",nil]; int count = array.count;//减少调用次数 for( int i=0; i NSLog(@"%i-%@", i, [array object
2015-11-18 10:13:14 369
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人