
iOS
夏一鸣
IOS Dev
展开
-
关于新浪微博注销后自动登录的问题
最近程序中需要做分享功能,腾讯的的OK,但新浪的注销后,再次点击时,本来应该进入到登录的授权页面,webview形式出现。但结果每次再进入时,会自动登录上次注销的号。查了相关资料后,发现有两种解决办: 1:因为只清除了登录数据,但是uiwebview的cookie仍然保留在本地,所以需要清除uiwebview的cookie内容,清除方式如下:NSHTTPCookie *co原创 2012-11-01 19:11:18 · 4596 阅读 · 0 评论 -
一种简便获取iPhone IMEI 的方法
使用CoreTelephony库,它是一个公开的framework,但很多API没有出现在文档中iPhone私有API跟电话相关的CoreTelephony 里面提到了很多API, 其中有些可能跟电话录音有关系.其中 _CTServerConnectionCopyMobileIdentity 就是用来获取IMEI的#importstruct CTServerConn转载 2012-12-21 14:13:21 · 18058 阅读 · 4 评论 -
iphone开发中使用动态库(dylib)和动态加载framework (获取iphone的IMSI和设置飞行模式)
在iphone上使用动态库的多为dylib文件,这些文件使用标准的dlopen方式来使用是可以的。那相同的在使用framework文件也可以当做动态库的方式来动态加载,这样就可以比较自由的使用apple私有的framework了。dlopen是打开库文件dlsym是获取函数地址dlclose是关闭。 当然,要使用这种方式也是有明显缺陷的,那就是你要知道函数名和参数,否则无法继续转载 2013-01-06 16:59:30 · 1327 阅读 · 0 评论 -
retain\assign\copy的区别
举个例子:NSString *str = [[NSString alloc] initWithString:@'abc'];上面一段代码会执行以下两个动作:1 在堆上分配一段内存用来存储@'abc' ,比如:内存地址为0X1111 内容为 'abc'2 在栈上分配一段内存用来存储str,比如:地址为0XAAAA 内容自然为0X1111下面分别看下转载 2013-02-17 15:13:46 · 626 阅读 · 0 评论 -
@dynamic关键字的作用
先引用一段apple的解释: @dynamic You use the@dynamic keyword to tell the compiler that you will fulfill the API contract implied by a property either by providing method implementations directly or a转载 2013-02-18 15:28:02 · 10767 阅读 · 0 评论 -
关于UI_USER_INTERFACE_IDIOM() & UIDevice.model
使用 UI_USER_INTERFACE_IDIOM() 进行区分 (ios 3.2>=) 无法区分iphone和ipod if (UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad){ // } else { // } 区分目前UI_USER_INTE转载 2013-02-21 10:01:33 · 794 阅读 · 0 评论 -
“Bundle version” 和 “Bundle versions string, short”的区别
Bundle version is the internal version number of your app. Short version string is the publically visible version of your app. So for example, if you iterate your version number every time you d原创 2013-05-22 11:26:52 · 5866 阅读 · 0 评论 -
iOS通过iTunes search检测版本更新,并提示用户更新!
如果我们要检测app版本的更新,那么我们必须获取当前运行app版本的版本信息和appstore 上发布的最新版本的信息。当前运行版本信息可以通过info.plist文件中的bundle version中获取:[cpp] view plaincopyNSDictionary *infoDic = [[NSBundle mai转载 2013-05-22 11:13:30 · 914 阅读 · 0 评论 -
IBOutlet造成的内存泄漏
在iphone中,只要控件使用IBOutlet连接 ,则必须release它。无论它是否有@property(nonatomic,assign),@property(nonatomic,retain)属性。原因如下:On Mac OS X, IBOutlets are connected like this:Look for a method转载 2013-06-04 18:29:04 · 734 阅读 · 0 评论 -
ios实现通讯录的查询与删除
os提供了对通讯录操作的组建,其中一个是直接操作通讯录,另一个是调用通讯录的UI组建。实现方法如下:添加AddressBook.framework到工程中。代码实现: -(IBAction)onClickbutton:(id)sender { NSMutableArray* personArray =[[[NSMutableArray alloc] i转载 2012-12-21 15:04:48 · 4380 阅读 · 1 评论 -
ios根据视频地址获取某一帧的图像
http://blog.fuckbugs.me/category/ios/ //CatchImage.h #import Foundation/Foundation.h> @interface CatchImage : NSObject /* *videoURL:视频地址(本地/网络) *time :第N帧 */+ (UIImage*) thumbnailImageForVideo:转载 2012-12-18 00:54:50 · 11283 阅读 · 2 评论 -
iOS使用DES加解密
这里使用框架提供的des加解密库:首先引入头文件 #import 主要的加解密函数如下:/*字符串加密 *参数 *plainText : 加密明文 *key : 密钥 64位 */+ (NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key{ NSString *ciphertext =转载 2012-12-18 00:56:57 · 4204 阅读 · 2 评论 -
字符串NSString中去掉空格
【问题描述】 某些情况下,服务器返回的字段中含有空格,这空格是服务器开发人员不小心往数据中多敲了,但客户端需要保护,所以在客户端需要把字符串中的空格过滤掉。【问题分析】1、使用NSString中的stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]方法只是去掉左右两边的空格;2转载 2012-11-02 18:07:22 · 1280 阅读 · 0 评论 -
iPhone消息推送机制实现与探讨
最近两天在研究ios的消息推送机制。研究这个东西,还是充满兴趣的。Push的原理:Push 的工作机制可以简单的概括为下图图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider。 APNS 是Apple Push Notification Service(Apple Push服务器)的缩写,是苹果的服务器。上图可以分为三转载 2012-10-26 10:42:07 · 559 阅读 · 0 评论 -
iOS开发环境,证书和授权文件
一、成员介绍1. Certification(证书)证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:1) Developer Certification(开发证书)安装在电脑上提供权限:开发人员通过设备进行真机测试。可以生成副本供多台电脑安装;2) Distribution Certification(发布证书)安装在电脑上提供发布iO转载 2012-11-27 10:50:43 · 2367 阅读 · 0 评论 -
iOS开发:Debug与Release版本NSLog屏蔽方法
在开发过程中一般会用到NSLog()来获得具体的信息。但当我们发布app时,一步一步的去找NSLog(),并屏蔽掉,这样比较浪费时间还很累。我们可以采用预编译的方式来简化这个问题。 1.在***-Prefix.pch里面添加#ifdef DEBUG# define DLog(...) NSLog(__VA_ARGS__)#else# define DLog(...转载 2012-11-27 18:21:02 · 8192 阅读 · 0 评论 -
stretchableImageWithLeftCapWidth:topCapHeight:函数用法
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是不拉伸区域和左边框的宽度,第二个参数是不拉伸区域和上边框的宽度。转载 2012-11-13 19:08:33 · 3542 阅读 · 0 评论 -
对NSString进行URL编码转换
iPTV项目中在删除影片时,URL中需传送用户名与影片ID两个参数。当用户名中带中文字符时,删除失败。之前测试时,手机号绑定的用户名是英文或数字。换了手机号测试时才发现这个问题。对于URL中有中文字符的情况,需对URL进行编码转换。urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncodin原创 2012-11-17 16:20:35 · 6681 阅读 · 0 评论 -
Xcode 4.5 无法生成IOS APP ARCHIVE的解决方法
存档编译的App,每次都生成一个 名字叫:Generic Xcode Archive 的玩意.如果工程引用了外部类库, 默认生成的archive是 Generic Xcode Archive 格式的 无法发布和生成ipa文件。网上的解决办法是:将其他静态库中的 Build Settings 中的 Skip install 更改为 YES, 主工程的 Skip install 依旧转载 2012-11-20 15:53:08 · 4875 阅读 · 1 评论 -
获得通讯录中联系人的所有属性
ABAddressBookRef addressBook = ABAddressBookCreate(); CFArrayRef results = ABAddressBookCopyArrayOfAllPeople(addressBook); for(int i = 0; i { ABRecordRef person = CFAr转载 2012-12-21 15:03:43 · 1217 阅读 · 0 评论 -
iOS 如何在一个应用程序中调用另一个应用程序
分两步:步骤一:首先在程序A的plist中添加url typesCFBundleURLTypesCFBundleURLNameAAAAACFBundleURLSchemestestA步骤二:在程序B中调用A程序的地方添加代码// @"testA:" --> URLSchemeNSURL *myURL_APP_A =转载 2013-06-06 15:48:01 · 1179 阅读 · 0 评论 -
iOS客户端的gzip解压
服务端使用gzip压缩,可以大幅度减小传输包的体积,加快客户端网络请求速度,为用户节省流量。当服务器返回的httpHeader的"Content-Encoding" 属性的值是gzip时,数据会自动被解压缩,但有时候在客户端还没拿到数据的时候,就已经被某些网关解压了,这样gzip就没有起到作用。因此可以约定其他策略,防止网关解压,例如在别的头属性中标记gzip。如此,就需要我们自己来解压g转载 2013-07-06 19:39:24 · 11148 阅读 · 0 评论 -
Gzip compression/decompression
http://deusty.blogspot.com/2007/07/gzip-compressiondecompression.htmlA long time ago I grabbed some code from CocoaDev to allow zlib compression/decompression of NSData. But a couple months ago I转载 2013-07-06 19:55:56 · 1664 阅读 · 1 评论 -
使用iOS手势UIGestureRecognizer
UIKit中包含了UIGestureRecognizer类,用于检测发生在设备中的手势。UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,它有下面一些子类用于处理具体的手势: 1、拍击UITapGestureRecognizer (任意次数的拍击) 2、向里或向外捏UIPinchGestureRecognizer (用于缩放) 3转载 2013-08-09 15:55:30 · 816 阅读 · 0 评论 -
如何调试SIGABRT和EXC_BAD_ACCESS引起的crash
1. SIGABRT是处于程序控制状态下的crash,SIGABRT引起的crash是因为系统发现了应用程序正在做一些系统不希望它去做的事情(Exception)。一般情况下,当SIGABRT发生的时候,会现实如下的bug信息:它并不能精确的定位到crash发生在哪个源文件哪行代码中。为了精确的定位,我们可以使用Exception Breakpoint在Exception发转载 2013-09-11 17:30:47 · 3902 阅读 · 0 评论 -
CoreMotion可以测到的各种值
1,CMAccelerometerData实际包含一个结构体acceleration(类型:CMAcceleration),提供三轴加速度值,如下所示:typedef struct {double x;double y;double z;} CMAcceleration;// A structure containing 3-axis acceler原创 2013-09-12 15:25:01 · 6580 阅读 · 0 评论 -
使用CocoaPods来做iOS程序的包依赖管理
前言每种语言发展到一个阶段,就会出现相应的依赖管理工具, 或者是中央代码仓库。比如Java: maven,IvyRuby: gemsPython: pip, easy_installNodejs: npm随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,这个工具叫:CocoaPods。CocoaPods简介CocoaPo转载 2013-09-29 14:18:47 · 910 阅读 · 0 评论 -
手把手教你ARC--iOS/Mac开发ARC入门和使用
本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流和讨论。请不要将本文的部分或全部内容用于商用,谢谢合作。欢迎转载本文,但是转载请注明本文出处:http://www.onevcat.com/2012/06/arc-hand-by-hand/本文适合人群:对iOS开发有一定基础,熟悉iOS开发中内存管理的Reference Countin转载 2013-09-22 13:35:49 · 1406 阅读 · 0 评论 -
ios与android设备即时语音互通的录音格式
在做iphone开发之前,我(ray)对声音格式了解的相当少。我知道一些“wav”和“mp3”声音格式的差异,但是我肯定不能准确地告诉你“AAC”、“CAF”是什么格式的声音文件,同时也不知道在MAC上最好的转换音频文件的方法是什么。我深知,假如你想要成为一名合格的iphone开发者,你必须对声音文件数据格式,转换,录音和使用什么音频操作API有个基本的了解。这篇文章是三篇涵盖音频转载 2013-11-01 17:50:29 · 22947 阅读 · 0 评论 -
iOS 删除文件夹下所有文件的方式
有时候需要在iOS系统里面,删除指定文件夹的内容,文件夹里面可能是文件,也可能包含有文件夹。删除指定类型的文件。方法如下:NSString *extension = @"m4r";NSFileManager *fileManager = [NSFileManager defaultManager];NSArray *paths转载 2013-11-09 17:20:47 · 6114 阅读 · 0 评论 -
苹果开发者账号注册流程
下面就开始注册苹果ID并且通过交纳99美元,来获取一个官方授权的证书以便于你发布你的应用程序到IPHONE.对于中国开发人员,打开如下图链接: http://developer.apple.com/programs/register/如果你已经拥有一个苹果ID,也可以不注册,不过,苹果建议你为开发专用的账号专门注册一个苹果ID。如图所示,点击注册。 我们就来到了下面转载 2013-11-11 16:48:19 · 1711 阅读 · 0 评论 -
IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
在工程中,我们会常常遇到需要下载的程序,比如下载在线音乐、下载图片等等,今天我将介绍一下利用ASIHTTPRequest的下载示例,支持断点续传,利用ASIHTTPRequest下载以及断点续传的原理在我的博客:http://blog.youkuaiyun.com/pjk1129/article/details/6575588中有具体的介绍,今天重点介绍如何实现,废话少说,开始正文: 一、创建网转载 2013-08-09 16:45:31 · 996 阅读 · 0 评论 -
iOS开发ASIHTTPRequest下载数据
本文为大家介绍了iOS开发ASIHTTPRequest下载数据的内容,其中包括设定将服务器响应数据直接下载到文件,处理收到的服务器响应数据,PUT请求、获取HTTP状态码,读取响应头,处理文本编码,处理重定向等等内容。将服务器响应数据直接下载到文件如果你请求的资源很大,你可以直接将数据下载到文件中来节省内存。此时,ASIHTTPRequest将不会一次将返回数据全部保持在内存中。转载 2013-08-09 16:36:29 · 1131 阅读 · 0 评论 -
ios copy关键字的使用
转自:http://jordy.easymorse.com/?cat=26copy关键字的使用平时我们使用对象之间的传值都是采用retain count +1的方式,这种方式的适用于当对象的某属性的值改变时,引用该对象的不同指针会同时改变,因为这两个指针指向的是同一个内存地址,但如果需求是,当一个指针执行的对象属性值发生改变时,不影响另一个对象,那么需要分配两个不同的内转载 2013-07-29 10:24:43 · 717 阅读 · 0 评论 -
iOS SDK:iOS调试技巧
http://www.cocoachina.com/newbie/basic/2013/0517/6225.html 为什么你的数组包含3个项目而不是5个?为什么你的游戏运行缓慢?这些都跟调试有关,调试是开发过程中必不可少的一部分。本文所列举了一些重要的调试功能(当然并不全面)可以帮你用更少的时间来解决bug问题。 本文内容主要包括3个方面:使用co转载 2013-07-08 16:16:25 · 834 阅读 · 0 评论 -
【iOS越狱开发】如何将应用打包成.ipa文件
在项目开发中,我们常常需要将工程文件打包成.ipa文件,提供给越狱的iphone安装。下面是一种方法:1、首先应该给工程安装好配置文件(这里不再敖述),在ios device的状态下,运行成功。2、选择Product->archive,如下图3、点击Distribute按钮,弹出新窗口,选择Export as Xcode Archive,如下:4、弹转载 2013-07-12 15:29:49 · 2914 阅读 · 1 评论 -
iOS-iPhone-Development
Xcode 4.3的symbolicatecrash的位置和老版本的不一致了。/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/Xco转载 2013-06-28 13:15:48 · 758 阅读 · 0 评论 -
symbolicate crash log
1、首先找到一个叫symbolicatecrash的工具,xcode4.3下是在 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symboli转载 2013-06-28 13:17:50 · 1320 阅读 · 0 评论 -
IOS Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等
// Only override drawRect: if you perform custom drawing.// An empty implementation adversely affects performance during animation.- (void)drawRect:(CGRect)rect{ CGContextRef context = UIGr转载 2013-06-28 12:55:19 · 1766 阅读 · 0 评论 -
iOS 消息推送原理及实现总结
一、消息推送原理:在实现消息推送之前先提及几个于推送相关概念,如下图:1、 Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服务端[消息的发起者]);2、 APNS:Apple Push Notification Service[苹果消息推送服务器];3、 iPhone:用来接收APN转载 2013-07-04 10:24:27 · 2002 阅读 · 0 评论