- 博客(31)
- 收藏
- 关注
原创 ios第三方支付流程
⽀支付宝:⼀一、整体流程(1)先与⽀支付宝签约,获得商户ID(partner)和账号ID(seller)(注册app⽤用)(2)下载相应的公钥私钥⽂文件(加密签名⽤用)(3)下载⽀支付宝SDK。(4)根据SDK设置(如何签约、如何获得公钥私钥、如何调⽤用⽀支付接⼝口)(5)⽣生成订单信息(6)调⽤用⽀支付宝客户端,由⽀支付宝客户端跟⽀支付宝安全服务器打交道(7)⽀支付完毕后返回⽀支
2015-04-18 22:50:28 1295
原创 ios沙盒机制
一、iOS中的沙盒机制iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一般存放着程序包文件(可执行文件)、图片、音频、视频、plist文件、sqlite数据库以及其他文件。每个应用程序都有自己的独立的存储空间(沙盒)一般来说应用程序之间是不可以互相访问模拟器沙盒的位置/User/userName/Library/App
2015-04-17 17:36:23 725
原创 单例设计模式
单例模式原则上,单例是在程序生命周期里只被实例化过一次的 类。为了确保这一点,我们利用类的一个静态方法来生成和访问对象。因此, 你是通过以便利方法来访问某个类的单例对象的,而不是用 alloc/init或者静态autorelease初始化方法。在很多时候,我们使用一个某个类的唯一实例。最常见的就是一个程序的主类。以下是以名为 Root
2015-04-16 11:37:15 734
原创 工厂方法
@什么时候使用工厂方法?@iOS中工厂方法的简单实现 举个例子,有一家生产衣服的工厂,它生产2种型号的衣服,一个为DOTA类,一个为LOL类,经销商需要进什么类型的货一定要显示的告诉工厂,生产指定的类型,这样很麻烦,后来它有钱了,开了两家工厂,一家单独生产DOTA类,一家单独生产LOL类,这样,经销商进货直接去找对应的工厂就行.
2015-04-16 11:26:19 669
原创 swif中字符串
//首先我们定义一个字符串var str ="Hello, playground"//再定义一个空字符串var str2 = String()//字符串可以用来相加str += "hi"str.isEmpty //falsestr2.isEmpty //true//使用for-in循环遍历字符串for charin str{
2015-04-16 11:10:10 429
转载 iOS7新特性之TextKit(四)通过boundingRectWithSize:options:attributes:context:计算文本尺寸
之前用Text Kit写Reader的时候,在分页时要计算一段文本的尺寸大小,之前使用了NSString类的sizeWithFont:constrainedToSize:lineBreakMode:方法,但是该方法已经被iOS7 Deprecated了,而iOS7新出了一个boudingRectWithSize:options:attributes:context方法来代替:很
2015-04-08 21:24:47 341
原创 刷新,加载原理
我以前说过,只要是动画都是骗人的,只要不是硬件问题大部分效果都能在系统UI的基础上做出来. @下面是关键代码分析:// 下拉刷新的原理 - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView { if (scrollView.contentOff
2015-04-08 21:19:59 321
原创 图文混排
首先是NSTextContainer:The NSTextContainer class defines a region in which text is laid out.An NSTextContainer object defines rectangular regions, and you can define exclusion paths inside the t
2015-04-08 21:15:22 446
原创 swift循环语句与字符串
****************************************************循环语句**********************************************在swift的循环语句中,我们用到for in 这样的语句,在oc中大家不会陌生,快速遍历当时会用到,在讲for in循环语句之前,我们先学一个区间运算符,这个在高中我们多学过区间
2015-04-05 13:18:19 377
原创 swift判断与元组
1---判断语句//首先我们来定义两个布尔值,在swift真是true假是false 没有YES和NO 和oc有区别的let trueValue= truelet falseValue= false if falseValue //这里一般式可以没有小括号 有也无妨,是不是感觉读起来很奇怪,{ println("liyuanboWrong")
2015-04-05 13:13:19 548
原创 用单例封装Core Data中的MO
#import "DataBaseManager.h"static DataBaseManager *instance = nil;@implementation DataBaseManager+ (DataBaseManager *)sharedManager{ static dispatch_once_t onceToken;
2015-04-03 22:31:32 1360 1
原创 封装数据加载方法
+ (void)requestWithURL:(NSString *)url methdod:(NSString *)method params:(NSDictionary *)params completion:(Completion)com{ //url: body key=valu
2015-04-03 22:22:50 600 1
原创 GCD(dispatch_after)
//Dispatch After //一段时间之后,把要执行的任务追加到队列当中 //创建时间 //相对的时间点 相对第一个参数多长时间之后 dispatch_time_t time =dispatch_time(DISPATCH_TIME_NOW,3ull * NSEC_PER_SEC); //时间的单位
2015-04-03 22:19:15 1261
原创 GCD(dispatch_group)
//多个任务都结束后 的一个全部结束的处理 //创建监听组 dispatch_group_t group=dispatch_group_create(); //创建并行队列 dispatch_queue_t queue=dispatch_get_global_queue(0, 0); //使用 group 监听 队列任务的执行
2015-04-03 22:11:09 1087
原创 swift与properties
import Foundation//一个存储属性就是存储在特定类或结构体的实例里的一个常量或变量struct FixedLengthRange { var firstValue:Int let length:Int}var rangeOfThreeItems = FixedLengthRange(firstValue:0, length:
2015-04-03 20:39:22 330
转载 ios SQLite增删改查
研究了几天的数据库,终于把它给搞出来了。Sqlite是ios上最常用的数据库之一,大家还是有必要了解一下的。这是仿照网上的一个例子做的,有些部分写的不好,我稍作了修改,以讲解为主,主要让大家能够明白如何修改,明白原理,达到举一反三的目的。先来看看效果图 先来看看数据库方法类,将各个操作都封装在一个类里面,达到代码重用的目的,这是程序员都应该努力去实现的目标,这样在下一次用
2015-04-02 21:59:57 566 2
原创 swift与pattern
import Foundationfunc swapTwoInts(inout a:Int, inout b: Int) { let temporaryA = a a = b b = temporaryA}func swapTwoStrings(inout a:String, inout b: String) {
2015-04-02 21:41:49 455 2
转载 毛玻璃效果实现
核心代码:[cpp] view plaincopy//加模糊效果,image是图片,blur是模糊度 - (UIImage *)blurryImage:(UIImage *)image withBlurLevel:(CGFloat)blur { //模糊度, if ((blur 2.0f)) {
2015-04-02 13:23:13 926 1
原创 通过nextResponder查找控制器(类目)
#import "UIView+ViewController.h"@implementation UIView (ViewController)- (UIViewController *)viewController { UIResponder *next =self.nextResponder; do {
2015-04-01 22:50:34 358 3
原创 图片上绘制水印文字(类目)
#import "UIImage+Watermark.h"@implementation UIImage (Watermark)- (UIImage *)watermarkImageWithText:(NSString *)text{ //1.取到上下文 UIGraphicsBeginImageContext(self.size);
2015-04-01 13:23:42 670
原创 block的使用
Block作为C语言的扩展,并不是高新技术,和其他语言的闭包或lambda表达式是一回事。需要注意的是由于Objective-C在iOS中不支持GC机制,使用Block必须自己管理内存,而内存管理正是使用Block坑最多的地方,错误的内存管理要么导致return cycle内存泄漏要么内存被提前释放导致crash。Block的使用很像函数指针,不过与函数最大的不同是:Block可以访问函数以外、词
2015-04-01 09:45:54 802 2
原创 AVAudioPlayer进入后台播放
-(void)setAudioPlayer{ //加入播放按钮 if (playButton==nil) { playButton = [UIButton buttonWithType:UIButtonTypeCustom]; playButton.frame =
2015-03-30 19:21:25 14189 1
原创 总结状态栏与导航栏设置
《一》.设置状态栏样式(1.)设置状态栏高亮- (UIStatusBarStyle)preferredStatusBarStyle {return UIStatusBarStyleLightContent;}(1.@)在各视图控制器中显示不同的样式,需在导航控制器中调用以下方:(然后在各控制器中自主设置各自样式);- (UIStatu
2015-03-30 19:15:30 548 1
原创 swift与结构体
struct Resolution { var width = 0 var height = 0 func test(){ println("test") }}//所有结构体都有一个自动生成的成员逐一构造器,用于初始化新结构体实例中成员的属性let vga = Resolution(width:640, he
2015-03-30 08:26:12 768
原创 swift与枚举
//枚举语法//不像 C 和 Objective-C一样,Swift 的枚举成员在被创建时不会被赋予一个默认的整数值,North,South,East和West不是隐式的等于0,1,2和3enum CompassPoint { case North case South case East case West}enum Plane
2015-03-29 17:36:41 474
原创 Swift语言语法(运算符)
//1、基本运算符1、Swift支持C标准库中的大多数运算符并提升了各自的兼容性,从而可以排除常见的编码错误2、分配符 (=)不会返回一个值,这样可以防止你因粗心将 等于(==)写成 赋值运算符(=) 而引起的错误3、算术符(+、 -、 *、 /、 % 等)会检查与驳回值溢出,这样可以避免值类型的数据在超过值类型所允许的存储范围时,出现意想不到的数据。你可以选择使用Swift所
2015-03-28 21:07:46 586 1
原创 通过value找key
NSMutableDictionary *dic=[[NSMutableDictionary alloc] init]; [dic setValue:@"abc" forKey:@"1"]; [dic setValue:@"你好" forKey:@"2"]; [dic setValue:@"哈哈" forKey:@"3"];
2015-03-28 14:02:05 797 1
原创 实现下拉刷新
移动应用开发中有这么一种场景,就是在列表中显示的数据刷新,有点击刷新按钮刷新的,也有现在最流行的由Twitter首先推出的下拉刷新功能,在IOS中,使用下拉刷新更新UITableView中的数据也用的非常多,最典型的就是新浪微博的客户端,使用下拉的形式来更新最新的微博信息。首先来看看工程目录结构:加载源码到工程中的方式我就不赘述了,然后我新建了一个MainViewContr
2015-03-28 13:38:27 375
原创 谓词
根据对象的某个属性过滤数组! (根据srcArr中的对象的属性 name过滤数组), 对应的语法还有 (BETWEEN,IN,BEGINWITH,ENDWITH,CONTAINS,LIKE)NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"self.name CONTAINS %@", textStr];
2015-03-24 22:20:06 522
原创 创建单例(完整版)
/* *单例的概念:定义一个类,如果需要设计模式是个单例。那么,我们在实例化时,有且只有一个对象。 *作用的作用:方便任何对象共享和访问这个实例。 */static instenceClass *class = nil;+ (instenceClass *)shareClass{ //加锁 @synchronized(self) {//保证单例创建的唯
2015-03-24 21:57:34 333
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人