Iphone 开发
lyhuzhu
创业者,产品经理,iOS开发工程师,微信号:lyhuzhu。
展开
-
UITableView利用MJRefresh下拉刷新加载更多,不滚动到顶部
在做项目的时候,有个聊天页面需要下拉刷新加载更多数据,加载完成后不需要回到顶部,而是保持UITableView不滚动的功能。至于什么原因导致UITableView会滚到顶部的,初步估计是MJRefresh空间的原因,reloadData不会导致UITableView位置的改变。有时间再研究研究这个第三方控件的写法。下面说说我的解决思路。在reloadData完成后,重新设置UITableV...原创 2019-03-12 11:38:14 · 1922 阅读 · 0 评论 -
iOS7新特性-NSURLSession详解
大家都知道,过去的IOS系统网络处理是通过NSURLConnection来实现的。由于NSURLConnection通过全局状态来管理cookies和认证信息,这就意味着在某种情况下,可能同时存在两个不同的连接去使用这些公共资源。NSURLSession很好的解决了许多这种类似的问题。本文连同附件一共讨论了三种不同的下载场景。本文会着重讲述有关NSURLSession的部分,整个项目就不再转载 2013-10-15 10:50:19 · 2504 阅读 · 0 评论 -
NSURLSession使用说明及后台工作流程分析
NSURLSession简介NSURLSession是iOS7中新的网络接口,它与咱们熟悉的NSURLConnection是并列的。在程序在前台时,NSURLSession与NSURLConnection可以互为替代工作。注意,如果用户强制将程序关闭,NSURLSession会断掉。NSURLSession提供的功能:通过URL将数据下载到内存通过URL将数据下载到文件系统转载 2013-10-15 11:05:21 · 1885 阅读 · 0 评论 -
ASIHTTPRequest 中url参数中文乱码
ASIHTTPReques确实是在开发过程中,数据的传输,获取方面给我们很大的帮助。然而在一些方面也是需要一些的注意。在我们使用ASIHTTPReques 进行get方式获取数据时,如果需要传入中文,一般的方式就是把参数放在url中,进行处理。然而这种方式会直接调用回调函数:requestFailed:不会成功的。这时的解决办法是:用继承ASIHTTPReques的子类ASIFormD原创 2013-10-09 16:35:29 · 2148 阅读 · 0 评论 -
ios中的银联支付
场景随着移动互联网的迅猛发展,移动互联已经深深地融入我们的生活。其中,支付方式也是我们生活中经常遇到的情况。所以,在我们的应用中加入支付功能是多么的重要。现在主流的支付接口,一是支付宝类的,一是银联。支付宝已经在前面的文章提及了并说明了具体的使用步骤。那么这篇文章主要说明下银联在ios中的使用,官方DEMO下载地址:http://download.csdn.net/detail/pearlhu原创 2013-08-30 11:26:42 · 7891 阅读 · 8 评论 -
ios 摇一摇功能的实现
当我们用微信的时候是不是感觉摇一摇的功能很炫呢?是不是感觉实现起来比较麻烦呢?其实,不然,这些都是苹果已经给我们封装好了,给我提供了非常简单的入口了。在UIResponder中有这些方法:-(void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event{ NSLog(@"began");}-(voi原创 2013-08-15 17:15:58 · 3708 阅读 · 0 评论 -
ios 打电话结束返回到应用中
在我们做打电话这个功能时,我们常常是调用这个方法:[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://xxxxx"]];然而,这样实现了功能后,结束通话后,确不能回到自己的应用中来。最近在网上搜了很多,苹果自己是没有提供回调函数的。强大的网友们通过用UIWebView这个控件实现了这个方法。代码原创 2013-08-14 22:07:06 · 2867 阅读 · 2 评论 -
用命令行自动打包成.ipa文件-完全攻略
场景在我们将工程开发完成后,需要给客户看测试版本时,就需要给你客户ipa文件,用91助手安装。如果,是直接使用xcode来做的效率是非常低下的。当有一点小改动需要重新出包时,就需要人工再次重复打包过程,这样的工作,对于我们写程序的人来说,完成可以用程序搞定。所以,我们就应该结合我们的实际工作情况,做我们自己的自动打包工具。下面,我们就来对于核心的一些步骤,出来走几步。准备我们需要用到x原创 2013-07-17 17:38:17 · 11270 阅读 · 2 评论 -
百度地图 - 合并模拟器和真机的静态库文件
场景在我们进行运用百度地图时,百度地图给我们准备了两个静态库文件,分别运用于模拟器和真机。如果我们要一边用模拟器,一边用真机测试那我们需要时不时地替换静态库文件了。这样实在太麻烦了,所以我们需要将两个文件,合并成一个通用的文件,方便我们的开发。实现我们需要在百度开发者中心将两个静态库文件下载到本地。分别找出两个文件的绝对路径。运用lipo命令(注意:不要忽略空格),合并两个静态原创 2013-08-20 10:09:17 · 2723 阅读 · 0 评论 -
this class is not key value coding-compliant for the key
今天给cell建个xib,并且连接.h、.m文件,连线控件。出现异常结果发现,连接的时候,首先选择的是first's owner,这里需要选择你定义的cell,我这里选择custom cell连接后,成功。原创 2013-07-26 16:19:00 · 2135 阅读 · 0 评论 -
ios检查版本更新
场景在我们使用应用时,一打开应用,如果此应用有新的版本,常常能在应用中给出提示,是否要更新此应用。所以,我们就来看看,版本更新是如何实现的。应用苹果给了我们一个接口,能根据应用id请求一些关于应用的信息。我们可以根据返回的信息,来判断版本是否和应用的版本一致,如果不一致,那么就出现新的版本了。这时,就需要向用户提醒有新的版本,需要更新。具体步骤如下: NSMutableURL原创 2013-07-25 15:42:41 · 4409 阅读 · 2 评论 -
iOS开发-用keychain替代UDID
从2013-5-1日开始苹果就禁止对UUID的应用的通过了。所以我们需要用一些办法替换,下面我就是用keychain的访问替换掉UUID的。那么,关于Keychain的应用,Apple提供了一个叫GenericKeychain的例子程序,在这里:http://developer.apple.com/library/ios/#samplecode/GenericKeychain/Listings原创 2013-05-13 10:34:50 · 3962 阅读 · 0 评论 -
IOS 基础开发之 UIScrollView的使用
UIScrollView 是我们在项目开发过程中,经常会用到的控件。1、初始化 //init UIScrollView *scrollView = [[UIScrollView alloc] init]; [scrollView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.fra原创 2013-03-26 16:18:51 · 1530 阅读 · 0 评论 -
支付宝在ios应用上的开发
前奏现在随着移动开发的快速发展,越来越多的应用要求在线支付功能。最近做了一个关于支付宝支付功能的应用,在使用支付宝的过程中,遇到一些不必要的弯路,因此,写了这篇文章总结一下关于ios开发如何使用支付宝。正文首先,我们需要支付宝的功能,应该去支付宝的开发平台,下载sdk以及demo。地址:点击进入下载页面。第一步、将需要的文件,静态库等拖入工程中,这里有:include,libs,U原创 2013-07-11 14:57:35 · 16282 阅读 · 17 评论 -
用输入流NSInputStream 来实现图片,文件等的上传
场景有时候,我们需要保存iPhone本地的资源(图片为例)到服务器的相应路径。那么就需要将本地图片上传到服务器。这样,可以用NSInputStream + NSURLConnection +NSMutableURLRequest来实现图片上传。正文开始我们需要在头文件.h中声明一些变量。如下:NSURLConnection* _aSynConnection;NSInputStre原创 2013-07-12 09:15:52 · 5796 阅读 · 1 评论 -
Code Sign error: Provisioning profile 'xxxxxxxxxxxxxxxxxxxxxxxxx'
如果你更新了你的证书,那么真机调试就会出现 Code Sign error: Provisioning profile ‘XXXX’ can't be found这个问题。解决办法: 1、关闭你的项目,找到项目文件XXXX.xcodeproj,在文件上点击右键,选择Show Package Contents。2、直接双击打开project.pbxproj。在左边搜索栏中直原创 2013-06-25 18:10:13 · 39241 阅读 · 0 评论 -
Base64 (ios)加码与解码
解码-(NSData*)base64Decode:(NSString *)string{ unsigned long ixtext, lentext; unsigned char ch, inbuf[4], outbuf[4]; short i, ixinbuf; Boolean flignore, flendtext = false; const原创 2013-12-06 15:42:02 · 1191 阅读 · 0 评论 -
Framework的制作
Framework的作用就不用阐述了,我们直接进入Framework的制作。我这里是用了一个静态库框架模板iOS Universal Framework Mk 8进行的制作。这是一个Xcode 4使用的项目模板,而不是一个新的开源框架。在上面链接的地方有很好的解释,已经用法,不过是英文的,翻译在这里:点击。安装模板iOS Universal Framework Mk 8解压原创 2013-12-05 14:13:13 · 1554 阅读 · 0 评论 -
适应iOS中的键盘高度变化
基本原理:通过获取键盘消息的开始状态、结束状态,以及变化周期,可以计算出具体的Y偏移,从而在相同时间里做相同偏移量。 代码如下:- (void)regNotification{ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) na原创 2013-12-18 10:51:42 · 1581 阅读 · 0 评论 -
一键生成AppIcon 多种尺寸图标
在我们开发APP的时候,客户总是不停地修改APPicon,感觉总是很麻烦。推荐大家使用一个一键生成的工具:http://www.makeicon.cc/,请测可以使用,瞬间感觉轻松了很多。原创 2018-01-17 11:21:59 · 7210 阅读 · 0 评论 -
APP开发如何批量生成不同尺寸的图标?
在我们开发APP的时候,我们使用到大量的不同尺寸的APPLogo的图片,如下图:通常,我们的做法是和设计师沟通,让他们切出这儿所以的图片,然后我们一个一个图片放在对应的位置,这样处理的话,我们比较容易出错,比如说,图片的格式(苹果对图片的格式要求非常严格),图片的大小等等。如果我们能通过一个工具来做这件事情,那么我们就可以节约很多时间,并且保证不会出错。那我这儿给大家推荐一款工具:ma原创 2018-01-16 17:23:43 · 3102 阅读 · 1 评论 -
AppStore加急审核流程
一、首先打开这个网址https://developer.apple.com/contact/app-store/?topic=expedite看到如下截图,这里我们选择request an expedited app review ,申请一个加急审核。二、完善一些数据如Contact Information,App Informati原创 2015-04-20 17:04:43 · 2052 阅读 · 0 评论 -
设备接到APNS发来的通知处理方式
我们在做远程通知时,从服务端发来的通知,我们的设备状态可以分为几种状态,如下:1. 应用还没有加载,即应用既不在前台,也不在后台运行这时如果点击通知的显示按钮,或者是图标icon,会调用didFinishLaunchingWithOptions,不会调用didReceiveRemoteNotification方法。如果点击通知的关闭按钮,再点击应用,只会调用didFinis原创 2015-04-20 11:26:16 · 1396 阅读 · 0 评论 -
上传AppStore关于.geojson文件的配置
.geojson文件,是AppStore上传流程改变后的一个新要求。通过看解释我们可以了解到这是个对区域限制的文件。也就是说在这个文件规定的区域内,APP是可以被下载的,除此是不能下载的。我使用的.geojson文件:{ "type": "MultiPolygon", "coordinates" : [原创 2015-04-23 15:10:58 · 3696 阅读 · 2 评论 -
IOS ARC和非ARC文件混用
ARC在SDK4.0的时候加入的,由于要和以前的项目融合,就会有arc和非arc文件的混合。当然,也就这两种情况:1.自己的旧项目没有使用ARC,但是引入的第三方库却是使用了ARC的。2.自己的新项目使用了ARC,但是引入代码却没有使用ARC。这两种情况下,直接肯定是通不过编译的。可以通过升级旧项目,让其使用ARC来解决,但这个办法有时候会很麻烦。有一个简单的办原创 2014-06-01 10:01:45 · 1453 阅读 · 0 评论 -
mac 版本控制工具SmartSVN7.5.4(破解版)
SmartSVN7.5.4下载地址:破解工具:smartsvn.license操作步骤:1、在MAC上选中smartsvn-macosx-10_78-7_5_4.dmg,双击2、进入iNViSiBLE文件夹3、双击syntevo_keygen.jar 如果没有安装java会自动提示安装的4、输入Name Email(随便输入), 注意选对Applicatio原创 2014-05-27 13:37:55 · 2390 阅读 · 0 评论 -
RSA公钥,私钥的生成与配置
RSA密钥的生成与配置openssl下载地址http://dldx.csdn.net/fd.php?i=20313208579480&s=ac2e809e168f7d5b8bf1515d3d6b1aa4,或者官方下载通过openssl工具生成RSA的公钥和私钥(opnssl工具可在互联网中下载到)1)生成RSA私钥打开bin文件夹下面的openssl.exe,打开生成命转载 2014-05-23 15:57:28 · 6231 阅读 · 0 评论 -
ios UITableView自带划动删除效果
说实话,UITableView cell自带的滑动删除效果,在ios7以前比较丑,但ios扁平化后,这个滑动删除还是非常好看的。而且实现起来也是非常容易的。实现这个效果主要是在UITableView协议里面实现。如下:设置可以编辑- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath原创 2014-06-06 09:40:48 · 3292 阅读 · 2 评论 -
对于ios7扫描二维码功能的实现
在ios7以前,我们开发二维码扫描,或者生产都需要借助第三方的开源库进行开发。然后升级到ios7时,在passbook中苹果自带二维码扫描功能,而且扫描速度非常快,秒杀一切第三方开源库。所以,我们做二维码的开发选用自带sdk优先级应该高于其他的库。说到二维码的开发,我们需要用到这两个对象。如下。。@property (nonatomic,strong) AVCaptureS原创 2014-06-05 23:20:12 · 1775 阅读 · 0 评论 -
NSDate 时间加减
NSDate有个类别,如下:@interface NSDate (NSDateCreation)一个方法是:- (instancetype)initWithTimeInterval:(NSTimeInterval)secsToBeAdded sinceDate:(NSDate *)date;这个方法官方的description是:Returns an NSDate ob原创 2014-05-19 11:28:50 · 3910 阅读 · 0 评论 -
XML解析:第三方库GDataXMLNode的使用
在我们开发项目中,涉及到与服务器交互时,时常需要解析从服务器请求的数据,此时,我么就希望有一个库能专门处理这样的事物。所以,我们今天来了解下GDataXMLNode,说说它的具体使用情况,直接上步骤了。1、首先应该下载第三方封装的类文件,下载地址:http://download.csdn.net/detail/pearlhuzhu/5442103。2、导入文件:libxml2.dylib。原创 2013-05-24 14:10:00 · 2664 阅读 · 0 评论 -
iOS7.1 企业证书部署无效的问题
原因就是7.1的plist文件必须放到支持https的域名下,.ipa放在哪里都无所谓。http://stackoverflow.com/questions/20276907/enterprise-app-deployment-doesnt-work-on-ios-7-1/22325916#22325916原创 2014-03-14 10:15:01 · 1611 阅读 · 0 评论 -
评价等级使用的五星选择,包含半星的选择
今天做了一个对商品的等级评价选择,就五颗星那种,我们需要有半星的选择,所以今天就结合网上的资料封装了一个控件,供大家使用,欢迎提出意见。效果截图如下:DEMO下载地址如下:原创 2013-07-08 17:27:45 · 2180 阅读 · 0 评论 -
iOS Library With Resources
今天在弄静态库中如何添加带xib的viewcontrol,搞了很久,在网上搜到一篇很全面的文章,直接分享地址了。iOS Library With ResourcesThe other day I was finding myself wondering why it was so complicated to create a “framework” for iOS w转载 2013-06-19 11:51:42 · 1260 阅读 · 0 评论 -
ios 获取文件大小
文件夹:首先导入头文件:#include #include #define Localizable_LF_Size_Bytes @"%lld Bytes"#define Localizable_LF_Size_K @"%lld K"#def原创 2013-06-06 19:51:39 · 1959 阅读 · 0 评论 -
iphone开发适配iphone5的步骤
iphone5的屏幕分辨率:1136 x 640 也即是高度变成了568,程序启动时我们需要一张retina图片命名为Default-568h@2x.png。在我们创建工程时xcode会默认为我们创建一个纯黑色的图片替换即可。xcode 4.5 已经支持iphone5的模拟器了。打开模拟器,选择设备,选择iphone(Retina 4-inch),即为iphone5的模拟器。原创 2013-04-19 17:30:35 · 1749 阅读 · 0 评论 -
iOS6.0 消息推送的原理与实现
一、消息推送的原理Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务器。 上图可以分为三个阶段:第一阶段:应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。 第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并原创 2013-04-26 16:30:30 · 2359 阅读 · 2 评论 -
如何向UITableView 添加分组,右侧索引/搜索
只需要实现UITableView的回调方法即可:- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView { return keys;}原创 2013-04-17 10:03:28 · 2324 阅读 · 0 评论 -
armv6,armv7 ,armv7s 的整理笔记
armv 是指令集的意思,偏硬件。目前iphone5支持armv7s。The iPhone 5 will ship with and only run iOS 6.0. To coincide with the launch of iOS 6.0, Apple has seeded developers with a newer version of its development原创 2013-04-25 09:37:42 · 5998 阅读 · 0 评论 -
Xcode 4.5"Could not insert new outlet connection"的解决办法
1、关闭Xcode,重新打开,看能不能连接,一般情况能连接,如果不能连接,继续第二条。2、到~/Library/Developer/XCode/DerivedData目录中,找到用你的工程名字和一串字母连接起来命名的工程,删除这个文件夹。 重新打开Xcode,ok。参考:http://stackoverflow.com/questions/6703054/xcod原创 2013-04-23 10:16:30 · 1410 阅读 · 0 评论