iOS之开发
文章平均质量分 52
ZHZMAREN
fighting
展开
-
ios开发问题之死锁
死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。发生死锁的情况 一般是两个对象的锁相互等待造成的。那么为什么会产生死锁呢?有3个原因:第一,因为系统资源不足;第二,进程运行推进的顺序不合适;第三,资源分配不当。产生死锁的条件有四个: l 互斥条件:所谓互斥就是进程在某一时间内独占资源。 l 请求与保持条原创 2016-03-02 11:03:01 · 659 阅读 · 0 评论 -
Apple Pay
Apple Pay运行环境:iPhone6以上设备,操作系统最低iOS9.0以上,部分信息设置需要iOS9.2以上。目前还不支持企业证书添加。环境搭建好后可以在模拟器上面运行,xcode7.2.1+iPhone6SP9.2系统下,系统会绑定几种虚拟的银行卡,和几个联系人,方便调试,支付也不会发生真实的付款,真的很方便。[TCO]准备工作在接入Apple Pa转载 2016-03-02 14:00:08 · 354 阅读 · 0 评论 -
Apple pay的证书问题
准备工作:本地先生成一个CSR文件备用,用于申请证书。教程:MAC下生成CSR(.certSigningRequest)文件申请 MerchantID登录苹果开发者中心,在Identifiers下选择Merchant IDs,点击右上角添加按钮添加Merchant ID;输入描述信息和标识符,点击继续MerchantID1.png这是刚才的信息的确认,没问题转载 2016-03-02 17:10:02 · 490 阅读 · 0 评论 -
iOS之让人蛋疼的证书
在iOS开发过程中,不可避免的要和证书打交道,真机调试、App上架、打包给测试去测试等都需要搞证书。在此过程中我们会遇到很多的问题,但是如果掌握了真机调试的原理和本质;遇到问题,我们就更容易定位问题之所在,从而迅速的解决问题。这篇文章不是一步步教给你证书,描述文件的制作(其实制作步骤是非常简单的),而是尽可能的讲明白Member Center中的一些知识及原理。并且此文不涉及如何申请开发者账号,以转载 2016-03-03 14:17:04 · 334 阅读 · 0 评论 -
支付宝支付
1、新建一个header file(.h)文件,放入商家相关的宏// PartnerConfig.h// YuenAlipayDemo//// Created by peikua on 15/8/17.// Copyright (c) 2015年 Ruan. All rights reserved.// #ifndef YuenAlipayDem转载 2016-03-15 18:25:32 · 606 阅读 · 0 评论 -
KVO KVC
关于KVC和KVO各种博客多了去了,重新整理下,就当是温习一下吧,也还算是个新手,不对的地方请指教,喜欢的点个喜欢什么也是挺好。一,KVCKVC也就是key-value-coding,即键值编码,通常是用来给某一个对象的属性进行赋值,例如有人这么一个类,其对外有两个属性,姓名和年龄,我们在创建了一个人p后可以通过点语法直接给p赋值。Person *p =转载 2016-03-15 18:29:09 · 232 阅读 · 0 评论 -
简单的做了一个苹果支付的demo
配置文件:请点击文件配置首先导入框架:#import 然后是代理:PKPaymentAuthorizationViewControllerDelegate这个代理方法是为了和后台数据做判断完成支付的对接:-(void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewControlle原创 2016-03-04 18:13:21 · 680 阅读 · 0 评论 -
讯飞语音
添加静态库将开发工具包中lib目录下地iflyMSC.framework添加到工程中去。再添加如下图所示的库:3)导入头文件在.pch文件导入如下头文件:01 #import 02 #import 03 04 #import 05 #import 06 07转载 2016-03-30 13:46:21 · 440 阅读 · 0 评论 -
高德地图之语音导航
头文件:#import "iflyMSC/IFlySpeechSynthesizer.h"#import "iflyMSC/IFlySpeechSynthesizerDelegate.h"#import "iflyMSC/IFlySpeechConstant.h"#import "iflyMSC/IFlySpeechUtility.h"#import "iflyMSC/IFly原创 2016-03-30 13:50:28 · 3445 阅读 · 1 评论 -
比较汉字的方法
两个方法:(一)有一个比较常用的算法是将汉字转换成拼音。当时采用的做法是:将各个拼音段的首个汉字(按Unicode排序)做成两个数组,一个数组存拼音,另一个数组存拼音对应首个汉字的Unicode。如果要获取某个汉字的拼音,可以折半查找法找的对应拼音。(二)最近无意间发现CFStringTransform这篇文章后,发现系统本身已经提供了一个这样的函数。转载 2016-03-18 11:41:17 · 546 阅读 · 0 评论 -
tableview之多行删除
删除所有的cell://找到所有的indexPath NSArray *arr = [self.tableView indexPathsForRowsInRect:CGRectMake(0, 0, self.view.frame.size.width, self.tableView.contentSize.height)]; [arr enumerateO原创 2016-03-07 11:48:53 · 422 阅读 · 0 评论 -
ios简单的功能类的封装
.h文件中:#import #import @interface XYString : NSObject#pragma mark - json转换+(id )getObjectFromJsonString:(NSString *)jsonString;+(NSString *)getJsonStringFromObject:(id)object;#pr原创 2016-03-08 10:34:08 · 662 阅读 · 0 评论 -
ios 单例的几种写法
GCD写法+(Manager *)sharedManager{ static dispatch_once_t predicate; static Manager * sharedManager; dispatch_once(&predicate, ^{ sharedManager=[[Manager alloc] init]; });原创 2016-03-31 16:04:59 · 217 阅读 · 0 评论 -
APP应用程序的生命周期
一: main函数入口:主要完成三个功能:1,从可用Storyboard文件加载用户界面2,调用AppDelegate自定义代码来做一些初始化设置3,将app放入Main Run Loop环境中来响应和处理与用户交互产生的事件UIApplication对象用户与iOS设备交互时产生的事件(Multitouch Events,Motion Event,R原创 2016-03-31 16:14:04 · 413 阅读 · 0 评论 -
增加PCH文件
前沿:xcode6中去掉了pch,为了一些琐碎的头文件引用,加快了 编译速度!xcode6之前的版本建项目就自动添加了是这样的:【xcode6中添加pch全局引用文件】" title="iOS8 【xcode6中添加pch全局引用文件】">xcode6后的版本要自己手动的添加步骤如下:1) 【xcode6中添加pch全局引用文件】" title="iOS8 【xcode6中添加pch全转载 2016-03-17 14:10:29 · 178 阅读 · 0 评论 -
页面间跳转的卡顿问题
页面间跳转的性能问题总结为以下三种情形:1).A页面跳转到B页面,由于B页面需要加载大量的数据,所以导致页面跳转延迟。2).A页面跳转到B页面,由于B页面需要加载大量UI元素,所以导致页面跳转延迟。3).A页面跳转到B页面,由于A或B页面的GPU使用率过高,所以导致面页跳转时出现过场动画不流畅,缓慢等。-渲染服务进程 虽然看到的效果跟Appl转载 2016-04-01 10:26:07 · 4718 阅读 · 0 评论 -
block 循环引用(2)
防止block与当前控制器循环引用解决办法: __weak __typeof(self)weakSelf = self;众所周知:可是如果在这个block里面执行: removeObserver 方法时就会突然崩掉!!!!!所有有问题找简书!!很强大的想你所想*****解决办法:在block实现中增加:原创 2016-04-01 11:27:25 · 205 阅读 · 0 评论 -
项目崩溃简单总结
- 数组类型 越界访问会crash- 字典类型查询时: ~~~objective-c- (nullable ObjectType)objectForKey:(KeyType)aKey;~~~当key为nil。能够正常运行。插入时: ~~~objective-c- (v原创 2016-04-01 14:47:30 · 2504 阅读 · 0 评论 -
从堆栈剖析block为什么用copy
1.首先理解连个概念堆:heap ->heap的空间需要手动分配。heap与动态内存分配相关,内存可以随时在堆中分配和销毁。我们需要明确请求内存分配与内存销毁。简单来说,就是malloc与free.栈:stack-> stack的空间由操作系统进行分配。 在现代操作系统中,一个线程会分配一个stack.当一个函数被调用,一个stack原创 2016-04-01 14:56:12 · 1200 阅读 · 0 评论 -
常用到的宏定义!!!!!
屏幕宽度:#define kScreenW [UIScreen mainScreen].bounds.size.width屏幕高度:#define kScreenH [UIScreen mainScreen].bounds.size.height颜色随机:#define RGBColor(r,g,b) [UIColor colorWithRed:(r)/255.0原创 2016-02-15 15:12:26 · 366 阅读 · 0 评论 -
控制器的生命周期
当一个视图控制器被创建,并在屏幕上显示的时候。 代码的执行顺序1、 alloc 创建对象,分配空间2、init (initWithNibName) 初始化对象,初始化数据3、loadView 从nib载入视图 ,通常这一步不需要去干涉。除非你没有使用xib文件创建视图转载 2016-03-11 11:24:00 · 209 阅读 · 0 评论 -
iOS 宏(define)与常量(const)的正确使用
宏:#define HSCoder @"汉斯哈哈哈"变量:NSString *HSCoder =@"汉斯哈哈哈";常量:四种写法:staticconstNSString *HSCoder = @"哈哈哈";constNSString *HSCoder = @"哈哈哈";NSS原创 2016-03-24 11:42:10 · 244 阅读 · 0 评论 -
ios本地通知(二)
Notification是智能手机应用编程中非常常用的一种传递信息的机制,而且可以非常好的节省资源,不用消耗资源来不停地检查信息状态(Pooling),在iOS下应用分为两种不同的Notification种类,本地和远程。本地的Notification由iOS下NotificationManager统一管理,只需要将封装好的本地Notification对象加入到系统Notification管理机制转载 2016-03-24 11:56:20 · 296 阅读 · 0 评论 -
ios开发调试总结
对于软件开发而言,调试是必须学会的技能,重要性不言而喻。对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中。不同语言、不同IDE、不同平台的调试,有同性也有个性。今天我们就来学习一下iOS开发中的调试技巧,语言暂用为OC,IDE当然是强大的Xcode。首先说明下,Xcode已经为我们调试项目提供了极大的方便。【1.普通断点】转载 2016-03-24 13:38:09 · 301 阅读 · 0 评论 -
ios闪光灯
//开启闪光灯-(void)turnonLed{ AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; NSLog(@"%d",[device hasTorch]); //摄像头是否有提供闪光灯[device hasTorch] i原创 2016-03-24 14:23:02 · 284 阅读 · 0 评论 -
MagicalRecord的简单使用
1、新建一个工程,注意不要勾选 Core Data。2,为项目添加CoreData FrameWork。(点击工程根节点,然后依次Targets > Build Phases > Link Binary With Libraries > + > CoreData.framework > Add)。3.创建模型文件:下面创建一个名为Person的模型,有age、firstname、l原创 2016-02-26 15:55:37 · 461 阅读 · 0 评论 -
调用地图的导航功能
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ NSString *strCoord = nil; NSString *btnTitle = [actionSheet buttonTitleAtIndex:buttonIndex];原创 2016-02-25 14:37:52 · 329 阅读 · 0 评论 -
ios面试题(1)
1、写一个NSString类的实现+ (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSStringEncoding)encoding; + (id) stringWithCString: (c*****t char*)nullTerminatedCString enco原创 2016-02-25 12:53:16 · 1242 阅读 · 0 评论 -
ios socket第三方框架 AsyncSocket使用简介,连接,心跳,断线,数据发送与接收
1. socket 连接2. socket 断开连接与重连3. socket 发送与接收数据4. 简单使用说明如果需要在项目中像QQ微信一样做到即时通讯,必须使用socket通讯,本人也是刚学习,分享一下,有什么不对的地方希望大家指正ios原生的socket用起来不是很直观,所以我用的是AsyncSocket这个第三方库,对socket的封装比较好,只是好像没有带外传输(out—of-ba原创 2016-02-25 11:40:46 · 3809 阅读 · 1 评论 -
本地通知
// 初始化本地通知对象 UILocalNotification*notification = [[UILocalNotificationalloc] init]; if(notification) { // 设置通知的提醒时间 NSDate*currentDate = [NSDatedate]; n原创 2016-02-25 10:24:59 · 234 阅读 · 0 评论 -
关于微信SDk的方法(2)
/*! @brief 错误码 * */enum WXErrCode { WXSuccess = 0, /** WXErrCodeCommon = -1, /** WXErrCodeUserCancel = -2, /** WXErrCodeSentFail = -3, /** WXEr原创 2016-02-24 17:40:19 · 3124 阅读 · 0 评论 -
svn 简单的配置
CornerStone是Mac OS X系统下非常好用的一款svn工具,至XCode5之后,本人觉得XCode5的Svn实在让人不得要领,而CornerStone配置虽不难,但也有几个需要注意的地方,分享给大家,也希望大家能多提意见 声明:CornerStone是付费版128人民币,本文提供的破解版来自网络,仅供开发者学习交流使用,不可用作商业用途SVNCornerStone Co原创 2016-02-25 09:34:20 · 272 阅读 · 0 评论 -
关于微信SDk的方法(1)
#pragma mark - WXApiDelegate/*! @brief 接收并处理来自微信终端程序的事件消息 * * 接收并处理来自微信终端程序的事件消息,期间微信界面会切换到第三方应用程序。 * WXApiDelegate 会在handleOpenURL:delegate:中使用并触发。 */@protocol WXApiDelegate @optional原创 2016-02-24 17:38:44 · 889 阅读 · 0 评论 -
微信分享
NSDictionary *dicToken = [[NSUserDefaults standardUserDefaults] objectForKey:TOKEN_INFO]; WXMediaMessage *message = [WXMediaMessage message]; message.title = strSms;//@""; message.descr原创 2016-02-24 17:35:27 · 269 阅读 · 0 评论 -
高德地土提示搜索 AMapTip
先添加一个搜索框: _searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 64, SCREEN_WIDTH, 44)]; _searchBar.delegate = self; [self.view addSubview:_searchBar];简单的apikey自己在高德申请 [AMapS原创 2016-02-24 16:50:35 · 705 阅读 · 0 评论 -
Core Data 入门!!!!
简介 Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象。在此数据操作期间,我们不需要编写任何SQL语句,这个有点类似于著名的Hibernate持久化框架,不过功能肯定是没有Hibernate强大的。简单地用下图描述下它的作用:左边是关系模转载 2016-02-24 13:36:52 · 197 阅读 · 0 评论 -
ARC使用总结
一,ARC小结1.有了ARC,我们的代码可以清晰很多,你不再需要考虑什么时候retain或release对象。唯一需要考虑的是对象之间的关联,也就是哪个对象拥有哪个对象?2.ARC也有一些限制:1> 首先ARC只能工作于Objective-C对象,如果应用使用了Core Foundation或malloc()/free(),此时还是需要你来手动管理内存2> 此外ARC还有其它一些更原创 2016-02-24 13:33:48 · 360 阅读 · 0 评论 -
多线程操作之NSThread
2016软考项目经理实战班 python编程常用模板总结 一张大图看懂Android架构 每个iOS应用程序都有个专门用来更新显示UI界面、处理用户的触摸事件的主线程,因此不能将其他太耗时的操作放在主线程中执行,不然会造成主线程堵塞(出现卡机现象),带来极坏的用户体验。一般的解决方案就是将那些耗时的操作放到另外一个线程中去执行,多线程编程是防止主线程转载 2016-02-24 12:30:39 · 183 阅读 · 0 评论 -
多线程操作之GCD
一、简介在iOS所有实现多线程的方案中,GCD应该是最有魅力的,因为GCD本身是苹果公司为多核的并行运算提出的解决方案。GCD在工作时会自动利用更多的处理器核心,以充分利用更强大的机器。GCD是Grand Central Dispatch的简称,它是基于C语言的。如果使用GCD,完全由系统管理线程,我们不需要编写线程代码。只需定义想要执行的任务,然后添加到适当的调度队列(dispatch原创 2016-02-24 11:35:04 · 219 阅读 · 0 评论 -
多线程操作之NSOperation
1.简介NSOperation实例封装了需要执行的操作和执行操作所需的数据,并且能够以并发或非并发的方式执行这个操作。NSOperation本身是抽象基类,因此必须使用它的子类,使用NSOperation子类的方式有2种:1> Foundation框架提供了两个具体子类直接供我们使用:NSInvocationOperation和NSBlockOperation2> 自定义子类继转载 2016-02-24 11:17:10 · 184 阅读 · 0 评论