- 博客(40)
- 收藏
- 关注
原创 剑指Offer旋转数组中的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增的排序的数组的一个旋转,输出旋转数组的最小元素。例如输入{1,2,3,4,5}的一个旋转为{3,4,5,1,2},该数组的最小值为1。分析最直观的想法就是顺序遍历一次数组,就能够找出最小的数字,这样的时间复杂度是O(n)。既然叫做旋转数组,那么我们就需要利用好旋转数组的特性。看到这样的旋
2015-06-23 13:38:57 316
原创 Object基础语法Category、Extension、Protocol
需要使用int类型的变量的时候,可以像写C的程序一样,用int,也可以用NSInteger,但更推荐使用NSInteger,因为这样就不用考虑设备是32位的还是64位的。 可以看如下定义:#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64t
2015-06-21 18:23:19 386
转载 iOS中block深入原理研究
[0. Brief introduction of block]Block是iOS4.0+ 和Mac OS X 10.6+ 引进的对C语言的扩展,用来实现匿名函数的特性。用维基百科的话来说,Block是Apple Inc.为C、C++以及Objective-C添加的特性,使得这些语言可以用类lambda表达式的语法来创建闭包。用Apple文档的话来说,A block is
2015-06-21 16:29:23 511
原创 负数的左移与右移
1)负数的右移:负数右移的话,由于要保持它是负数,所以负数的二进制的右边补1。如果一直右移的话,最后就就变成0xFFFFFFFF 即-1如: -4>>1 为-2 ;-4>>2为-12)负数的左移:跟正整数左移一样,右边补0,一直左移的话,最后就是0啦。-2<<2 为-4 ; -2对于LeetCode和 剑客Offer上 关于二进制数中1的个数的指示补充。
2015-06-21 16:20:06 3658 2
转载 输入一个整数,求该整数的二进制表示中有多少个1
求一个整数的二进制中1的个数。 题目:输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。 分析:这是一道很基本的考查位运算的面试题。包括微软在内的很多公司都曾采用过这道题。 一个很基本的想法是:我们先判断整数的最右边一位是不是1。接着把整数右移一位,原来处于右边第二位的数字现在被移到
2015-06-20 13:01:33 4166
原创 Rectangle Area ---come from leetcode
Find the total area covered by two rectilinear rectangles in a 2D plane.Each rectangle is defined by its bottom left corner and top right corner as shown in the figure.Assume that the tota
2015-06-19 17:16:44 284
转载 二维数组中的查找
转自:http://liuqing-2010-07.iteye.com/blog/13308301.1. 问题描述 在一个二维整数数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字7,则返回
2015-06-19 16:25:23 281
原创 leetCode之翻转二叉树
Invert Binary Tree Total Accepted: 11046 Total Submissions: 31299My SubmissionsQuestion Solution Invert a binary tree. 4 / \ 2 7 / \ / \1 3 6 9to
2015-06-18 21:52:18 966
转载 唐巧的iOS技术博客好文列表
过去几年里我和我的团队做的事情太杂了,甚至还扑在了cocos2d-x上,接下来终于可以专注在iOS和Android原生开发领域了,所以今天特意花了一天时间补课,把唐巧的博客截止到今天(2014.12.19)的好文都看了一遍,特此收藏一些有价值的文章:设置系统控件的语言,比如用户选择一段文本后跳出来的复制/粘贴等按钮文字的语言程序崩溃时不再傻乎乎地跳到main.m里,而是停在代码处(文中方法
2015-06-18 13:36:06 605
转载 百度面试相关问题
百度面试FEB 11TH, 2014 | COMMENTS百度移动云可穿戴部门的面试经历,面试官都非常热情友好,一上来到弄的我挺不好意思的。下面记录一下自己的面试过程,因为我真的没啥面试经验,需要总结下1面Objective C runtime library:Objective C的对象模型,block的底层实现结构,消息发送,消息
2015-06-18 13:32:51 286
转载 LeetCode编程备注
LeetCode 对基础数据结构和基础算法是很好的训练和考查。(1)涉及的重要数据结构:数组(一维,多维),链表,栈,队列,二叉树,无向图,散列,。。。(2)涉及的重要算法技术:贪心,动态规划,分治(递归),回溯(剪枝),搜索(广搜,深搜),。。。刷题后的一些体会(以下说法不绝对):1,一般来说,贪心的时间复杂度在O(n),空间复杂度是O(1) 或 O(n)
2015-06-18 11:18:10 565
转载 iOS中Foundation框架NSString基本用法总结
iOS开发过程中,从始至终都会和NSString打交道,在此总结一下NSString的常用的方法,在以后的学习过程中用到的方法也会继续添加 NSString类是Foundation框架中得不可变字符串,当NSString创建完成后,字符串的内容不可更改,与之对应的是NSMutableString类一、NSString对象的创建 1.使用类方法(stringWithFor
2015-06-17 14:39:30 402
转载 iOS原生二维码扫描
做iOS的二维码扫描,有两个第三方库可以选择,ZBar和ZXing。今天要介绍的是iOS7.0后AVFoundation框架提供的原生二维码扫描。首先需要添加AVFoundation.framework框架到你工程中build phase的"Link Binary With Libraries"之下,然后就可以开始了。一、做好准备工作,搭建UIUI效果如图IBOut
2015-06-17 14:16:39 485
转载 iOS 使用ZBarSDK扫描条形码和二维码
ZBarSDK,一个比较优秀的开源项目,使用起来也很简单。ZBarSDK是一个开源的SDK,可从这里下载到源码,该SDK实现了识别和读取各种条形码,包括EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 和 QR Code。帮助文档:http://zbar.sourceforge.net/i
2015-06-17 14:06:51 728
转载 仿iOS图标抖动、iOS删除App效果
#import "LHViewController.h"#define angelToRandian(x) ((x)/180.0*M_PI)@interfaceLHViewController ()@property(strong, nonatomic)IBOutletUIImageView *imageView;
2015-06-17 13:21:23 1978
转载 UIViewContentMode各类型效果
UIViewContentModetypedef enum { UIViewContentModeScaleToFill, UIViewContentModeScaleAspectFit, // contents scaled to fit with fixed aspect. remainder is transparent UIViewCon
2015-06-17 13:16:50 303
原创 头部图片可伸缩的TableView
Table列表顶部是一张大图,大图可以随着列表的下拉而放大。其中IScrollView的代理方法scrollViewDidScroll是重点方法。 #import "ViewController.h"#define Imgwidth 828#define Imgheight 589#define ScaleImageVie
2015-06-17 12:55:05 349
转载 iOS学习之Socket使用简明教程- AsyncSocket
目录[-]环境使用1. socket 连接2. socket 断开连接与重连3. socket 发送与接收数据4. 简单使用说明如果需要在项目中像QQ微信一样做到即时通讯,必须使用socket通讯,本人也是刚学习,分享一下,有什么不对的地方希望大家指正ios原生的socket用起来不是很直观,所以我用的是AsyncSocket这个第三方库,对sock
2015-06-16 20:14:33 405
转载 TCP/IP四层模型和OSI七层模型的概念
TCP/IP四层模型TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对应OSI的第四层)。 TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、
2015-06-15 14:19:13 402
原创 对socket、tcp、udp、http 的认识
网络由下往上分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。IP 协议对应于网络层,TCP协议对应于传输层,HTTP协议对应于应用层,三者从本质上来说没有可比性,socket则是对TCP/IP协议的封装和应用。可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据socket是对TCP/IP协
2015-06-15 14:10:29 601
原创 iOS单例模式~~以及单例宏定义
//// JYDModelLocator.h//// Created by jyd on 15/3/20.// Copyright (c) 2015年 jyd. All rights reserved.//// 数据共享类#import "JYDUser.h"//@class JYDUser;@interface JYDModelLoca
2015-06-15 11:14:10 636
转载 先UDP组播 socket 再TCP建立长连接
相关概念: 单播、多播(组播)和广播的区别 http://blog.csdn.net/wangerge/article/details/3931491 多播(组播)地址范围--224.0.0.0到239.255.255.255 广播地址: 255.255.255.255应用场景: 家庭局域网设备组件一个局域网,各设备提供udp socke
2015-06-11 10:28:05 2102
转载 组播路由协议原理
组播概述1.1 组播定义 单播、组播、广播是计算机网络上三种基本的通信方式。 单播是相互感兴趣的主机双方进行通信的方式,主机不能接收对其不感兴趣的其它主机发送的信息,属于点对点通信。 广播是主机向子网内所有主机发送信息,子网内所有主机都能收到来自某台主机的广播信息,属于点对所有点的通信。 组播则介于两者之间,是主机向一组主
2015-06-10 13:04:53 15554
转载 GCDAsyncSocket类库,IOS下TCP通讯使用心得
关于在IOS下使用Socket进行通讯的技术文章也许诺很久了,今日又是一个还债的日子,网上虽然很多介绍过AsyncSocket或GCDAsyncSocket的文章,但其实就那么一两篇大部分都是转载,于是我义正言辞、慷慨激昂的批判他们这种不负责任的态度,学习,不是给自己学的,是要和大家分享的。技术的共享有利于整体行业的进步,也可以使自身更深入全面的了解。之前的文章中我们讲到过TCP通讯协议,
2015-06-09 22:20:41 506
转载 单播、多播(组播)和广播的区别
单播、多播和广播单播”(Unicast)、“多播”(Multicast)和“广播”(Broadcast)这三个术语都是用来描述网络节点之间通讯方式的术语。那么这些术语究竟是什么意思?区别何在?1.单播:网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播”,此时信息的接收和传递只在两个节点之间进行。单播在网络中得到了广泛的应用,
2015-06-09 22:07:29 423
原创 iOS之设置导航控制器样式以及AttributeText, NSMutableAttributedString
// 设置导航栏的主题+(void)setupNavTheme{ //设置导航栏样式 UINavigationBar *navBar = [UINavigationBarappearance]; // 1.设置导航条的背景 //高度不会拉伸,但是宽度会拉伸 [navBar setBackgroundImage:[
2015-06-09 17:24:05 495
转载 GCDAsyncUdpSocket 组播监听端口接收数据
客户端开发一般是发送数据给服务端。这次反过来了,把客户端作为服务端了,监听对应端口并接收数据.直接上代码:.......h文件@interface ListenServerData : NSObject {}- (id)initWithData;@end........m文件#import "ListenSer
2015-06-09 15:14:33 1269
转载 int、NSInteger、NSUInteger、NSNumber的区别和联系
1、首先先了解下NSNumber类型:苹果官方文档地址:https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/Reference/Reference.htmlNSNumber是NSValue的一个子类,它是一个对象来存储数字值包括
2015-06-09 10:34:10 342
转载 初识BeeFrameWork
初识BeeFramework之前在InfoQ上看到唐巧对老郭的采访,采访的内容就是关于BeeFramework。看完那篇采访,感觉应该是个不错的框架,于是乎想学一学。正好,这段时间,工作上有点空闲。也把自己的学习过程记录一下。简介BeeFramework新建Bee项目第一个界面简介BeeFrameworkBeeFramework是一个semi
2015-06-09 09:19:15 397
转载 GCDAsyncSocket Github上 Readme 翻译
Asynchronous socket networking library for Mac and iOS对于Mac和IOS的异步SocketCocoaAsyncSocket provides easy-to-use and powerful asynchronous socket libraries for Mac and iOS. The classes are descri
2015-06-08 16:15:32 427
原创 CocoaAsyncSocket使用笔记之GCDAsyncUdpSocket
先去github的网站下载最新的包,然后先看看介绍。https://github.com/robbiehanson/CocoaAsyncSocket/wiki/Intro_GCDAsyncSocket网上很多都是老版本的帖子。官方已经推出了GCDAsyncSocket来代替以前老的AsyncSocket。1、引入GCDAsyncSocket所需要的框架,CF
2015-06-08 10:29:34 2858
原创 iOS之Git简介和Git常用命令
git是一款开源的分布式版本控制工具在世界上所有的分布式版本控制工具中,git是最快、最简单、最流行的作者是Linux之父:Linus Benedict Torvalds当初开发git仅仅是为了辅助Linux内核的开发(管理源代码)git现在国外已经非常普及,国内并未普及(在慢慢普及)越来越多的开源项目已经转移到git在很多情况下,git的速度远远比SVN快SVN是
2015-06-07 21:08:17 389
转载 iOS学习之Map,定位,标记位置的使用
iOS上使用地图比Android要方便,只需要新建一个MKMapView,addSubView即可。这次要实现的效果如下:有标注(大头针),定位,地图。1、添加地图1.1 新一个Single View app ,选择默认项,创建后,在ViewController.h #import #import #import @interface Vie
2015-06-05 15:21:34 327
原创 iOS之CALayer介绍
在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView,其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层@property(nonatomic,readonly,
2015-06-02 12:35:36 319
原创 Core Animation继承结构和基础介绍
iOS Develop Library 给出了如下图示其中继承结构如下:CATransition提供了一个图层变化的过渡效果,它能影响图层的整个内容。动画进行的时候淡入淡出(fade)、推(push)、显露(reveal)图层的内容。这些过渡效果可以扩展到你自己定制的 Core Image 滤镜。C
2015-06-02 10:27:44 450
原创 iOS简单的动画效果实现
在刷新微博的时候:会有一个短动画会显示有多少个新的微博。然后动画消失掉。我简单的实现了一下,代码如下:/** * 用于显示最新的直播数据的个数 * @example有10个新的直播数据 * @param count 10 */-(void)showStatusButton:(int)count{ //1.创建按钮 UIBut
2015-06-02 09:50:46 380
原创 XMPP 基础介绍 iOS导入XMPPFramework框架
即时通讯技术(IM -- Instant Messaging)支持用户在线实时交谈。如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容。有许多的IM系统,如AOL、Yahoo IM、 MSN以及QQ,它们最大的区别在于各自通讯协议的实现,所以即时通讯技术的核心在于它的传输协议协议用来说明信息在网络上如何传输,如果有了统一的传输协议,
2015-06-01 14:05:11 769
转载 Objective-C Runtime Programming Guide
-- [1] 版本和平台 -- [2] 与Runtime System交互 -- [3] 方法的动态决议 -- [4] 消息转发 -- [5] 类型编码 -- [6] 属性声明[1] 版本和平台Runtime System对于Objective-C来说就好比是它的操作系统,或者说是运行的支撑平台,
2015-06-01 11:13:45 299
转载 UITableViewCell的重用机制原理(转)
创建UITableViewController子类的实例后,IDE生成的代码中有如下段落:- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = [NSStri
2015-06-01 10:07:49 330
转载 IOS中的__block关键字简单使用
/**13.__block什么时候用?**/结论:在block里面修改局部变量的值都要用__block修饰/**14.请教一个问题:在block里面, 对数组执行添加操作, 这个数组需要声明成__block吗?**/不需要声明成__block,因为testArr数组的指针并没有变(往数组里面添加对象,指针是没变的,只是指针指向的内存里面的内容变了
2015-06-01 10:01:44 972
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人