自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 1064. Complete Binary Search Tree (30)

题目如下:A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties:The left subtree of a node contains only nodes with keys less than the node's k

2015-07-31 23:58:56 2034

原创 (九十九)桥接的介绍

OC中的桥接用于在C结构体(例如CFStringRef)和OC对象(例如NSString)之间进行转换。在非ARC环境下,如果要实现转换,直接进行强制类型转换: // NSString转C String NSString *ocStr = [NSString stringWithFormat:@"OC字符串"]; CFStringRef cfStr = (CFStringRef)ocS

2015-07-31 23:28:25 749

原创 (九十八)通讯录的访问和修改

在iOS端可以通过AddressBook或者AddressBookUI两个框架实现,区别是第二个框架带视图,一般使用第一个框架就够了。下面介绍AddressBook框架的使用,注意这个是C语言框架,使用起来比较麻烦。①请求授权先判断授权状态,如果未授权则进行授权。// 1.主动请求授权,先判断授权状态NSInteger state = ABAddressBookGetAuthor

2015-07-31 23:18:40 832

原创 (九十七)集成JPush实现远程通知和推送的发送

上节介绍了通过直接和APNS交互实现推送的方法,较为繁琐,最为重要的是发送推送需要特定的服务端,通过JPush,不仅可以简化客户端的接收,还可以通过控制台或者API实现通知的发送。首先注册JPush,创建应用,需要传入p12交换证书,如果只是调试,传入开发证书即可,打开Keychain Access,点击左侧的login,右键点击Export,即可导出为p12,注意设置密码,在应用创建时有相应

2015-07-30 17:30:21 1127

原创 (九十六)借助APNS实现远程通知、后台任务

APNS全称为Apple Push Notification Service,可以实现在app不启动时也能通过服务器推送到iOS端特定设备的功能。APNS的实现原理为先发送设备的UDID和应用的Bundle Identifier到APNS服务器,APNS加密后生成一个deviceToken,这个deviceToken是给特定UDID的设备(必须安装了相应的应用)发送推送消息的依据。通过APNS,可以实现远程通知和后台任务。本文从配置证书开始,一步步介绍实现方法。

2015-07-30 16:10:25 831

原创 1063. Set Similarity (25)

题目如下:Given two sets of integers, the similarity of the sets is defined to be Nc/Nt*100%, where Nc is the number of distinct common numbers shared by the two sets, and Nt is the total number of

2015-07-30 10:09:32 805

原创 1062. Talent and Virtue (25)

题目如下:About 900 years ago, a Chinese philosopher Sima Guang wrote a history book in which he talked about people's talent and virtue. According to his theory, a man being outstanding in both ta

2015-07-29 14:31:50 615

原创 (九十五)音效播放方法和工具类的制作

音效通过AVFoundation框架实现,是通过函数而不是方法,因此需要进行桥接等操作,具体步骤如下。进行音效播放,首先要得到音效的URL(只能是本地音频),然后转换为音效ID(唯一),通过ID播放音效。【音效播放方法】①导入框架主头文件#import ②通过Bundle拿到本地音效,然后调用AudioServicesCreateSystemSoundID函数得到音效ID,

2015-07-28 21:14:42 759

原创 (九十四)集成PKRevealController实现左右抽屉视图

使用PKRevealController可以实现类似于QQ等软件的左右抽屉视图,拖出的视图分为leftView和rightView,分别取自View的左半部分和右半部分,因此,根据不同的需求,可以选择使用一个View作为leftView和rightView,也可以指定两个View。下面介绍这个框架的基本使用步骤。①从github下载源码:PKRevealController②导入S

2015-07-28 19:49:53 2029

原创 1061. Dating (20)

题目如下:Sherlock Holmes received a note with some strange strings: "Let's date! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm". It took him only a minute to figure out that those strange st

2015-07-28 15:14:11 580

原创 (九十三)蓝牙的基本使用

蓝牙在GameKit框架中实现,可以实现文件传递和游戏通信等,蓝牙的缺点是不能得到文件传输的进度,因此不宜传输大文件。使用蓝牙的一般步骤如下:①创建蓝牙设备拾取器,类似于图片拾取器,通过代理方法获取拾取到的设备,调用show方法来显示拾取器。GKPeerPickerController *peerC = [[GKPeerPickerController alloc] init];pe

2015-07-27 22:34:01 684

原创 (九十二)加速计的用法(过期方法+新方法)

在iOS4之前,使用UIAccelermeter获取加速计的数据,这种方法由于简单,沿用至今。加速计坐标系如图所示,在相应轴向受力时会有数据变化。【过期方法】①定义UIAccelerometer对象,设置代理,采样间隔,然后系统会自动调用代理方法。UIAccelerometer *ac = [UIAccelerometer sharedAccelerometer];ac.

2015-07-27 22:17:52 1363

原创 (九十一)距离传感器的使用

iPhone上的距离传感器通过UIDevice开启,开启后系统以Notification的方式通知。①开启距离传感器,监听通知:- (void)viewDidLoad { [super viewDidLoad]; // 开启传感器在iOS3之后通过UIDevice的currentDevice的proximityMonitoringEnabled设置 [UIDevi

2015-07-27 22:03:28 1060

原创 1060. Are They Equal (25)

题目如下:If a machine can save only 3 significant digits, the float numbers 12300 and 12358.9 are considered equal since they are both saved as 0.123*105 with simple chopping. Now given the number o

2015-07-27 16:34:46 1789 1

原创 (九十)使用多个storyboard+代码实现控制器的分开管理

使用单个storyboard会使得项目难与管理,使用纯代码又会过于麻烦,因此如果能将二者结合起来,并且使用多个storyboard,会使得项目简单简单、方便许多。下面以一个简单的视图关系为例,介绍多个storyboard的用法。①有page1和page2两个页面,点击page1的Detail按钮会弹出page1Detail视图,点击page1Detail的返回按钮又会返回。②page1

2015-07-26 21:43:35 1329

原创 (八十九)用AutoLayout实现动画和Label根据内容自动调整

【AutoLayout动画】对于storyboard每个约束,都可以像控件那样通过拖线的方式来建立和代码的连接。约束是一个对象,通过这个对象的constant属性可以修改约束的点数。在修改之后,通过在UIView的animateWithDuration::方法的block内调用[self.view layoutIfNeeded]方法可以实现动画效果,调用layoutIfNeeded

2015-07-26 20:10:56 719

原创 (八十八)VFL语言初步 - 实现布局

【基本语法】VFL的语法为H:和V:开头,代表水平和垂直。接下来如果要涉及距离,使用|-x-,x为距离的点数。对于视图,用[ ]包围,例如[blueView]。①下面的语句实现了blueView水平方向左右各距离控制器的边缘20点:H:|-20-[blueView]-20|②如果要指定宽高,在视图名称之后用圆括号内填入常量数值,下面的代码实现了blueView距离左边2

2015-07-26 19:08:57 1078

原创 1059. Prime Factors (25)

题目如下:Given any positive integer N, you are supposed to find all of its prime factors, and write them in the format N = p1^k1 * p2^k2 *…*pm^km.Input Specification:Each input file contai

2015-07-26 12:32:23 949

原创 1058. A+B in Hogwarts (20)

题目如下:If you are a fan of Harry Potter, you would know the world of magic has its own currency system -- as Hagrid explained it to Harry, "Seventeen silver Sickles to a Galleon and twenty-nine

2015-07-26 12:22:46 659

原创 (八十七)AutoLayout的简介与实例

AutoLayout是继AutoResizing之后的一种自动布局方法,解决了AutoResizing无法处理控件间相互关系的问题。AutoLayout在storyboard中通过底部工具条设置,底部工具条只有勾选了AutoLayout允许才能显示。从左到右三个按钮分别是 对齐、固定和尺寸修复。【Align】第一栏和第二栏都无法选择,因为它们都是相对属性,需要一个以上的

2015-07-25 19:32:01 773

原创 1057. Stack (30) - 树状数组

题目如下:Stack is one of the most fundamental data structures, which is based on the principle of Last In First Out (LIFO). The basic operations include Push (inserting an element onto the top pos

2015-07-25 11:16:11 1045

原创 (八十六)使用系统自带的分享框架Social.framework

使用Social.framework十分简单,能够便捷的分享到主流的社交框架。①导入主头文件#import ②以新浪微博为例,首先判断服务是否可用,接着创建分享控制器、调用方法,设置文字和图片,利用block回调。如果没有分享的账号,系统会自动弹出对话框要求用户设置,因此不必开发者考虑。if (![SLComposeViewController isAvailableForSe

2015-07-24 20:40:54 1326

原创 (八十五)应用程序间的跳转与消息传递

应用程序的跳转识别的是URL的协议头,每个应用都可以指定一个URL的协议头,以此作为跳转的依据,而URL的地址部分作为消息体。【指定应用程序URL协议头的方法】选择TARGETS->info->URL Types,添加URL Schemes:【实现跳转的方法】要实现应用级操作,需要借助UIApplication单例的openURL方法。加入A要跳转到B,B的URL Sche

2015-07-24 20:08:30 813

原创 (八十四)集成百度地图和基本使用

配置的详细内容可以查看百度地图API文档来获取。①首先下载百度iOS SDK的完整包,将其中Lib的Release-iphonesimulator下的framework文件导入到工程,然后双击打开framework文件,再打开Resources,将其中的mapapi.bundle导入到工程。②从系统设置中导入下列框架:③在Build Settings里搜索other linker

2015-07-23 21:29:26 913

原创 (八十三)第三方类库不支持64位处理器的解决方法

当Xcode编译提示Undefined symbol for architecture x86_64时,说明当前框架不支持64位系统,要使用该框架,只需要修改工程设置即可。打开Build Settings,选择Architecture标签,按照下面的图片设置:在ARCHS_STANDARD后面加_32_BIT

2015-07-23 21:15:04 875

原创 (八十二)利用苹果服务器获取导航信息和绘制路径

要通过苹果的服务器获得导航数据,利用系统自带的类即可实现,先创建MKDirectionsRequest,然后利用request创建MKDirections,最后调用MKDirection对象的calculateDirectionsWithCompletionHandler:方法,该方法通过一个结构体回调,来获取导航信息。结构体传入的参数是MKDirectionsResponse对象,其中rou

2015-07-23 19:36:37 890

原创 1055. The World's Richest (25)

题目如下:Forbes magazine publishes every year its list of billionaires based on the annual ranking of the world's wealthiest people. Now you are supposed to simulate this job, but concentrate only

2015-07-23 13:22:48 1309

原创 1054. The Dominant Color (20)

题目如下:Behind the scenes in the computer's memory, color is always talked about as a series of 24 bits of information for each pixel. In an image, the color with the largest proportional area is

2015-07-23 13:17:18 900

原创 (八十一)利用系统自带App来实现导航

利用系统的地图App进行导航,只需要传入起点和终点、启动参数,调用MKMapItem的类方法openMapWithItems:launchOptions:来实现定位,调用此方法后会打开系统的地图App。下面我们来看看这个方法:+ (BOOL)openMapsWithItems:(NSArray *)mapItems launchOptions:(NSDictionary *)launchO

2015-07-22 20:54:04 966

原创 (八十)MapKit放置系统默认大头针和自定义大头针

有关MapView的显示和定位在上一节已经说明,这一节说明如何在地图上放置大头针,以及设置点击大头针的视图。【系统默认大头针】mapView上放置大头针的方法是调用其addAnnotation:方法,需要注意的是,传入的是模型而不是大头针视图。- (void)addAnnotation:(id )annotation;通过这个方法,我们可以清楚的看到,annotation模型需要遵循M

2015-07-22 19:56:34 3702

原创 (七十九)MapKit的基本使用

MapKit是苹果公司开发的用于显示地图和实现定位、导航的地图框架。MapKit View可以通过storyboard、xib创建,也可以通过代码直接创建。需要注意的是,通过storyboard和xib创建的话,需要手动导入MapKit框架,否则会报错,因为storyboard、xib无法解析MKMapView这个类。要使用此框架,首先手动导入框架(以便在storyboard和xib上

2015-07-21 20:46:03 1028

原创 1052. Linked List Sorting (25)

题目如下:A linked list consists of a series of structures, which are not necessarily adjacent in memory. We assume that each structure contains an integer key and a Next pointer to the next structur

2015-07-21 19:44:30 633

原创 (七十八)使用第三方框架INTULocationManager实现定位

前面(第七十五、七十六篇)讲述了如何通过CoreLocation获取位置,授权、获取等相当复杂,如果借助于第三方框架,可以简单的实现授权与定位。首先在GitHub中搜索LocationManager下载INTULocationManager,然后将其中的INTULocationManager文件夹拖入到自己的工程,导入主头文件:#import "INTULocationManager.h"

2015-07-20 21:17:01 2867

原创 (七十七)地理编码与反地理编码

所谓地理编码,指的是通过地名获取位置信息,例如经纬度、详细地址等。所谓反地理编码,指的是通过经纬度、海拔等信息获取地理位置信息。在iOS上使用地理编码和反地理编码,如果是手动输入经纬度,是不需要获取用户授权的,但是一般是获取用户的经纬度,然后再通过地理编码实现精确定位,因此需要授权,本文因为是单独讲解地理编码的相关知识,因此采用手动输人经纬度,不再赘述授权的代码。①导入框架:#im

2015-07-20 20:17:57 1062

原创 1051. Pop Sequence (25)

题目如下:Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop

2015-07-20 13:50:55 3094 3

原创 1050. String Subtraction (20)

题目如下:Given two strings S1 and S2, S = S1 - S2 is defined to be the remaining string after taking all the characters in S2 from S1. Your task is simply to calculate S1 - S2 for any given stri

2015-07-20 13:47:38 1043

原创 (七十六)CoreLocation(二)获取经纬度、速度、方向,进行区域监听

【经纬度、速度、时间】上节说到了更新位置的代理方法,这个方法传入了位置管理者自己和一个位置数组:- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{}数组中放的每一个元素都是一个CLLocation对象,为了得到最新的位置,我们应当获取数组的最后一个元素。CLLocation主要包含了经纬度、海拔、速度、时间等信息。CLLocation中的经纬度存储在CLLoc

2015-07-19 16:03:01 2621

原创 (七十五)CoreLocation(一)在iOS7和iOS8设备上获取授权

苹果在iOS8上更新了CoreLocation的授权获取方式,在原来的基础上,不仅需要调用授权函数,还需要对info.plist进行相应的配置。在iOS上获取经纬度使用的是CoreLocationManager,它来自CoreLocation.framework框架,使用时应当包含框架的总头文件:#import 一般是先创建管理者,然后成为其代理,对于iOS7,直接调用startUpd

2015-07-19 15:42:37 989

原创 1049. Counting Ones (30)

题目如下:The task is simple: given any positive integer N, you are supposed to count the total number of 1's in the decimal form of the integers from 1 to N. For example, given N being 12, there a

2015-07-19 12:22:40 1427

原创 1048. Find Coins (25)

题目如下:Eva loves to collect coins from all over the universe, including some other planets like Mars. One day she visited a universal shopping mall which could accept all kinds of coins as payme

2015-07-18 10:33:40 997

空空如也

空空如也

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

TA关注的人

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