自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

做一个奋斗不止的小公举!

只要你不放弃,等待你的将会是一片光明。

  • 博客(83)
  • 收藏
  • 关注

原创 UIWebView-iOS9设置

今天用WebView加载一个界面出现了这个错误NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802) 在info.plist里面添加这样一个属性就可以了App Transport Security Settings Allow Arbitrary Loads

2016-03-28 21:03:23 711

原创 OAuth授权

要获取微博的真实数据,所以要通过这个OAuth授权,哈哈,涨技能。先进入open.weibo.com ,然后登陆,然后我的应用,然后介入应用,然后填入相应信息。最后获取两个重要的东西App Key 和 App Secret然后三步走1.获取未授权的Request Token 2.获取用户授权的Request Token ,即用户进行输入用户名和密码,然后进行授权,授权后会返回一个授权过的Reque

2016-03-28 20:39:24 232

原创 KVC

KVC Key-Value-CodingsetValue:forKey: setValue:forKeyPath:valueForKey: valueForKeyPath:是个比较有用的东西,大家都这么说,嗯,那我慢慢体会。听说用它可以设置和访问私有的成员变量,嗯,就是说只要你定义了一个变量就逃不过他的火眼金睛。除非你在.m里面定义的全局变量。它可以修改一些系统设为readonly的属性。还有

2016-03-27 20:45:15 264

原创 项目中遇到的问题

哇咔咔,终于开始了自己的项目,嘿嘿,现在把做项目过程中遇到的问题和一些技巧记下来。—————————–一开始遇到了appicon的问题,唉,连@2x和@3x都不知道是啥意思。然后往上面放图片的时候就一直报错。 就是上面这个,首先要知道@2x就是扩大2倍,@3x就是扩大3倍。然后扩大谁的倍数呢,就是下面那个40pt,所以你在相应位置放图标时要保证大小跟要求的一样,还有就是命名方式,在图片名称后面加上

2016-03-25 18:59:18 1901

原创 cocoapods安装和使用

每一次安装都要各种搜索,这次决定记下来。首先大家都说要安装ruby环境,告诉你,不用按了,mac本来就有,反正我有。因为被墙了,要换个ruby镜像,换成淘宝的,唉,搞不懂,先照做吧。安装步骤如下: (注意都是在终端操作)gem sources –remove https://rubygems.org/移除原来的镜像,正常会出现 https://rubygems.org/ removed from

2016-03-24 20:29:54 249

原创 网络编程基础

移动应用一般由用户界面、用户体验、动态数据构成。 - 用户界面由UI设计 - 用户体验由多线程来完成 - 动态数据由网络编程来实现在网络编程中主要有这么两个角色客户端:移动应用服务器端:为客户端提供服务、数据和资源的机器步骤: 1.客户端向服务器发送请求,目的是索要资源 2.服务器会从数据库中寻找资源 3.服务器对客户端的请求进行响应,返回其所需资源服务器按照软件开发阶段,分为两种

2016-03-23 21:02:59 283

原创 多线程之延迟操作

有三个办法:[NSThread sleepForTimeInterval:]; 但是这个方法并不好,因为它就是相当于睡眠了给定的时间不走了,所以会卡住当前线程。performSelector:withObject:afterDelay: 这个方法直接在主线程中操作,但是不会卡住线程,程序依次执行,等过了指定延迟时间再回来执行相应操作。diapatch_after(dispatch_time

2016-03-22 11:50:34 4673

原创 Foundation之NSString

好吧,让我一点一点变强大,每一天都被很小的一个错误折磨……注意那个图的输入!!!!长和宽要注意!!!!! dfs的出口要注意!!!! 代码:#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>using namespace std;int n,m;int sx,sy,ex,ey;char room

2016-03-22 11:35:42 269

原创 instancetype和id

id是一个可以指向任何对象的指针,可以用来声明变量或者作为返回值但是instancetype只能作为返回值。但它有一个优点是可以检查指向的OC对象是否是本类型,如果不是编译器会发出警告。

2016-03-21 21:52:09 204

原创 block

block是可以截取自动变量的匿名函数,它是iOS中一种特殊的数据类型。 一般应用于 - 动画 - 多线程 - 集合遍历 - 回调(网络请求)在将block作为参数传递的一个技巧写法void test(int (^myBlock) (int num1, double num2, char num3)){}这样去定义参数时,看起来很麻烦,但是调用test函数时,会自动帮你生成参数,不需要

2016-03-21 21:11:06 281

原创 最小生成树之MST性质

在数据结构上看到这个性质的时候并不是很理解,觉得很抽象,所以我决定记录一下,以免以后又不理解了。其实就是一个 最优选择问题。原性质描述如下: 假设N = (V,{ E })是一个连通网,U 是顶点集V的一个非空子集。若(u , v )是一条具有最小权值(代价)的边,其中u∈U, v∈V - U,则必存在一棵包含边(u,v)的最小生成树。

2016-03-20 14:18:37 9005 3

原创 内存管理之ARC

有了ARC以后,我们不需要再去手动release、autorelease。编译器自动帮我们在适当的地方加上这些操作,所以这是编译器的一个特性。那么ARC的判断原则是什么呢- 只要有一个强指针变量指向对象,对象就会保存在内存中。(默认情况下所有指针变量都是强指针)

2016-03-19 18:55:11 248

原创 内存管理之autorelease

之前一直误以为,只要在下面对的大括号中写一些对象就可以自动释放。 @autorelease {} 大错特错XXXX首先 ,你只在这个autorelease里面创建对面,自动释放池是不会帮你管理的,只有你向某对象发送autorelease 消息才可以把该对象放到池子里,等到池子释放的时候再对池子里的所有东西进行一次release操作。注意这句话,只是对池子里的对象进行一次release,并不是将他

2016-03-19 18:36:36 304

原创 循环引用

关于循环引用,先说一句很重要的思路,搞清楚是怎么回事,要不老忘记,容易整蒙了。其实就是 A.point = B; ① B.point = A; ② 当A、B的point的属性都是strong参数时,那么①会导致B的引用计数加1,②会导致A的引用计数加1。所以A、B的引用计数此时都为1,无法释放,造成内存泄露,这就是循环引用,之前所说的概念A指B,B指A,容易混淆概念,本质上是引用计数的原因。

2016-03-19 15:58:33 289

原创 @class、#import、#include

#import 是个预处理宏用#import导入其他文件,会在编译时期,进行整个.h文件的拷贝。如果多个文件都导入了这个文件,那么一旦被导入文件有所改动,那么,所有导入该文件的类都需要重新编译。所以,如果只是想声明一个类,那么只用@class就可以。用#import会增加编译时间。@class A 就是说明A是一个类 @class还可以解决循环依赖的问题,比如A导入B,同时,B又导入A@class

2016-03-19 15:48:41 275

原创 内存管理之引用计数

我们都知道OC才用引用计数规则来管理内存。 就是持有一个对象时,引用计数加1,不需要时就减1。等到引用计数为0时,证明不需要这个对象了,所以,系统会自动回收这块内存,,即自动调用dealloc方法。比如: Person *p = [[Person alloc] init]; 此时内存状态是这样的。 引用计数其实就是表示,此时有几个东西在用它。那么当情况变成这样的时候呢。 (细节地方不写了,

2016-03-19 11:01:11 823

原创 两个单链表交叉和判环问题

有两个单链表,只有数据,和下一个结点的信息。首先判环 环不要只想到O型环,还有6型环。可以用两个指针遍历单链表P1、P2。P1每次走一步,P2每次走两步。如果最后P2追上了P1,则有交叉。这个问题可以想象,两个人绕着操场跑步,第二个人比第一个人快,则第二个人一定会在某一圈与第一个人相遇。具体可以考虑有一个10步的圈子,从1到10。然后两个人从1开始粗发。步骤如下 P1 以 1.2.3.4. 5.

2016-03-18 20:27:13 769

原创 面试会问到的一些知识

客户端安全处理方式:网络数据传输的一些敏感数据(用户密码、消费数据等)不能明文发送,要进行加密(MD5)有时可能不用http协议,要自己定一些协议本地文件存储(游戏存档,要加密)源代码,要进行一些混淆图片加载的比较慢如何处理,怎样优化程序性能图片下载放在异步线程图片下载过程中用占位图片如果图片特别大,考虑多线程断点下载设计一个框架API时,需要考虑的问题针对你要实现的功能,接口是

2016-03-18 19:46:45 437

原创 代理模式

iOS中传递消息的模式有以下几种:通知:在iOS中由通知中心进行消息接收和消息广播,是一种一对多的消息传递方式。代理:是一种通用的设计模式,iOS中对代理支持的很好,由代理对象、委托者、协议三部分组成。block:iOS4.0中引入的一种回调方法,可以将回调处理代码直接写在block代码块中,看起来逻辑清晰代码整齐。target-action:通过将对象传递到另一个类中,在另一个类中将该对象

2016-03-17 19:22:43 233

原创 了解堆和栈

程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在

2016-03-17 18:47:51 260

原创 工厂模式

简单工厂模式出现简单工厂的起因是因为, 对于大量的类的分配和销毁操作,如果分散在代码中会难以管理和维护。 简单工厂模式提供一个类,专门用于创建类,向外公开一个调用该方法的接口,之后关于该类的其他操作都与这个类无关。缺点是:当需要新增一个类时,需要更改写好的方法,不适合扩展。工厂方法模式工厂方法模式通过针对不同的产品,使用不同的工厂类创建不同的工厂对象然后生产不同的产品。也就是一个工厂类对应一类产品

2016-03-17 17:09:52 287

原创 装饰器模式

装饰器模式是在不改变原有类的基础上给类增加新的功能。体现在category 、 delegate

2016-03-17 16:51:55 227

原创 外观模式

针对复杂的实现,提供简单的接口

2016-03-17 16:49:37 216

原创 单例模式

单例模式一般用于某一个类只能有一个实例时。例如一些硬件资源,或者只需要有一个实例就可以的类。这个时候我们就需要利用单例模式去处理。[UIApplication sharedAPplication][NSBundle mainBunle][NSFileManager defaultManager][NSNotificationCenter defaultCenter][NSUserDefau

2016-03-17 16:47:22 248

转载 细数iOS上那些你绝对不会注意到的神细节

http://tech.sina.com.cn/mobile/n/n/2015-06-26/doc-ifxenncn6721713.shtml

2016-03-17 15:51:37 282

转载 野指针-随机crash问题

是的,你没有看错,要说的就是提高iOS的crash率!欲让其灭亡先让其疯狂,我们当然不是人为制造crash,准确地说,是使隐藏的随机性crash暴露出来,提高测试时的crash率,从而降低版本发布后的crash率。写c、c++代码的同学应该都清楚,crash最多的原因通常有两种,一种是多线程,一种是野指针。这两种crash都带随机性,而且这两种crash有相当一部分都很难区分,甚至大量的crash只

2016-03-17 12:55:45 2003

转载 nil、Nil、NULL、NSNull的区别

nil、Nil、NULL、NSNull的区别 nil:指向一个对象的空指针 Nil:指向一个类的空指针 NULL:指向其他类型(如:基本类型、C类型)的空指针 NSNull:通常表示集合中的空值举例: NSURL *url = nil; Class class = Nil; int *pointerInt = NULL; NSArray *array = [NSAr

2016-03-17 12:44:16 323

原创 野指针与空指针

产生野指针的原因主要为以下两点: (1)定义指针变量时没有初始化,这个时候它是随机指向一个地方的,不为NULL (2)指针指向的内存被释放之后,没有置为nil,即指向了不可用内存空指针是指

2016-03-17 12:43:12 477

原创 memset结构体初始化

memset可以方便的清空一个结构类型的变量或数组。  如:  struct sample_struct  {  char csName[16];  int iSeq;  int iType;  };  对于变量  struct sample_strcut stTest;  一般情况下,清空stTest的方法:  stTest.csName[0]='\0';  stTest.

2016-03-16 18:49:39 42850

原创 走格子收获

eg:poj2632 code:#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int a,b;int queue[101][101];int xx[4]= {-1,0,1,0}; //!!!!!!!注意这里方向的顺序必须和0、1、2、3保持一致!

2016-03-16 18:49:01 249

原创 是输入字符矩阵时

RT! 例如n*m的地图: mapp[12][12]; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>> mapp[i][j];这样比较保准。

2016-03-16 18:48:22 412

原创 字符串输入处理

//poj 2996+---+---+---+---+---+---+---+---+ | .r.|:::|.b.|:q:|.k.|:::|.n.|:r:|+---+---+---+---+---+---+---+---+|:p:|.p.|:p:|.p.|:p:|.p.|:::|.p.|+---+---+---+---+---+---+---+---+|...|:::|.n.|:::|

2016-03-16 18:47:46 257

原创 poj1426

//poj 1426//看了老半天用有道也没弄明白什么意思,可能是做的题太少了//题干中/*题目:Given a positive integer n, write a program to find out a nonzero(multiple --- 是倍数的意思!!!)multiple m of n whose decimal representation contains

2016-03-16 18:47:12 355

原创 T-TPOJ3083

好吧,让我一点一点变强大,每一天都被很小的一个错误折磨……注意那个图的输入!!!!长和宽要注意!!!!!dfs的出口要注意!!!! 代码:#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>using namespace std;int n,m;int sx,sy,ex,ey;char room

2016-03-16 18:46:43 518

原创 poj 3126(素数打表)

先对素数进行打表处理,以后可能也会用到 对bfs思想的一个理解/* 题意:一个四位数 ,从一个素数变成另一个素数,每次只能改变其中一位数,并且每次新形成的数字必须是素数,需要几步达到目标素数 */ 代码: #include<cstdio>#include<cstring>#include<algorithm>#define N 10000using namespace std;in

2016-03-15 13:10:48 437

原创 关于概率期望

做题量太少,看到expected time 都不知道要干嘛……今天比赛我一道题也不想做,我要一点一点进步,不要浮躁!加油!Crossing Rivers Time Limit: 2000/1000 MS (Java/Others)

2016-03-15 13:10:15 287

原创 HDU 1106

Problem Description 输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。Input 输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字

2016-03-15 13:08:11 207

原创 优先队列

使用优先队列,首先要包函STL头文件"queue"#include<stdio.h> #include<functional> #include<queue> #include<vector> using namespace std; //定义结构,使用运算符重载,自定义优先级1 struct cmp1{ bool operator ()(int &a,int

2016-03-15 13:07:15 221

原创 pow()

pow是double形式的pow(0,0)=1.000000;

2016-03-15 13:06:42 337

原创 20140816题目小节

A. 关于DP,值得一学,好好思考一下递推过程 加油! 题目大意:从(0,0)走到(n,m)只能向右或者向下,初始有能量1,到达某一点要保证加完权值之后大于0,求还需添加最小能量为多少 //Magic Grid 分析:可以用光搜,也可以DP 代码:#include <iostream>#include <cstdio>#include <cstdlib>#include <cstr

2016-03-15 13:06:14 235

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除