摘要: iPhone 开发过程中,内存的使用至关重要。不但要合理分配使用内存,还要注意内存泄露的问题, 因为内存泄露会导致程序由于内存不足而崩溃。根据个人开发的经验来看,在开发iPhone程序的过程中,关于内存的问题需要注意以下几点:内存分配、释放成对出现使用 alloc 分配的内存对象需要在用完后 调用release释放注意copy,retain,assign操作符的区别copy, retain操作符赋值的对象和alloc一样,需要release释放,否则会导致内存泄露assign 操作符的含义是将对象指向另一对象, 两者指向的是同一内存对象,无需调用release释放NSArray, NSDict 阅读全文
posted @ 2012-11-18 23:02 JackyYang7 阅读(204) 评论(0) 推荐(0)
摘要: 一、简单的get请求网络编程是我们经常遇到的,在IPhone中,SDK提供了良好的接口,主要使用的类有NSURL,NSMutableURLRequest,NSURLConnection等等。一般情况下建议使用异步接收数据的方式来请求网络连接,这种网络连接分为两步,第一步是新建NSURLConnection对象后,直接调用它的start方法来连接网络。第二步是使用delegate方式来接收数据,这里给一个常用的写法:网络请求部分:NSString *urlString = [NSString stringWithFormat:@"http://www.voland.com.cn:808 阅读全文
posted @ 2012-11-18 23:02 JackyYang7 阅读(281) 评论(0) 推荐(0)
摘要: ARC是什么ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。该机能在 iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2 可以使用该机能。简单地理解ARC,就是通过指定的语法,让编译器(LLVM 3.0)在编译代码时,自动生成实例的引用计数管理部分代码。有一点,ARC并不是GC,它只是一种代码静态分析(Static Analyzer)工具。变化点通过一小段代码,我们看看使用AR 阅读全文
posted @ 2012-11-18 23:01 JackyYang7 阅读(1395) 评论(0) 推荐(0)
摘要: 代码下载地址:UICustomSwitch.rariPhone SDK中的Switch控件默认的文本为 ON OFF两种,不同的语言显示不同, 颜色均为蓝色和亮灰色,如图如果想改变ON,OFF文本,我们必须重从UISwitch继承一个新类, 然后在新的Switch类中修改替换原有的Views, 申明代码如下UICustomSwitch.h//// UICustomSwitch.h// UICatalog//// Created by aish on 09-2-25.// Copyright 2009 .. All rights reserved.//#import <UIKit/UIKi 阅读全文
posted @ 2012-11-18 23:01 JackyYang7 阅读(620) 评论(0) 推荐(0)
摘要: 代码下载地址:objective-c-memman.zip此文章是作者Vince Yuan的一篇力作,写的很不错.对iphone内存不熟悉的朋友看过来.版本1.1发表于2010-03-08前言初学objectice-C的朋友都有一个困惑,总觉得对objective-C的内存管理机制琢磨不透,程序经常内存泄漏或莫名其妙的崩溃。我在这里总结了自己对objective-C内存管理机制的研究成果和经验,写了这么一个由浅入深的教程。希望对大家有所帮助,也欢迎大家一起探讨。此文涉及的内存管理是针对于继承于NSObject的Class。一基本原理Objective-C的内存管理机制与.Net/Java那种全 阅读全文
posted @ 2012-11-18 23:00 JackyYang7 阅读(174) 评论(0) 推荐(0)
摘要: UITextField是我们经常用的之一但是常用的属性都很熟悉,有些不常用的我也总结下,例如下面的:UIImageView * myView = [[ UIImageView alloc]initWithImage:[UIImage imageNamed:@"face.png"]];UIImageView * myView2 = [[ UIImageView alloc]initWithImage:[UIImage imageNamed:@"face.png"]];UITextField *myTextField=[[UITextField alloc] 阅读全文
posted @ 2012-11-18 22:59 JackyYang7 阅读(166) 评论(0) 推荐(0)
摘要: NSDate是NS类库中基础类型之一。随着数字化发展,程序对数据处理量越来越大,我们经常从服务器取得的日期是字符串序列,格式化为正确的date类型是一个不可避免的工作。在Cocoa程序里提供了非常方便的函数和类,但是仍然需要我们了解一些技巧。尤其是当我们的程序面对大量的日期字符串转换的时候,要格外的注意。苹果文档中使用NSDateFormatter类格式化日期字符串,但是以防读者不知道,我这里提一下:它的速度非常慢!!这篇文章介绍如何处理这种情况。- (NSDate *)dateFromString:(NSString *)string {//Wed Mar 14 16:40:08 +0800 阅读全文
posted @ 2012-11-18 22:59 JackyYang7 阅读(287) 评论(0) 推荐(0)
摘要: HockeyKit是一个用于iOS和Android下的app更新的开发包,作者是Thomas Dohmke,主页是:http://hockeykit.net/简述:Hockey 是一个iOS Ad-Hoc 自动更新框架。所有的苹果店中的app都可以使用它,它能显著提高整个beta测试过程。它分为两部分:服务器和客户端框架。服务端组件总是必需的,它不需要客户端库就能单独工作。它提供了一个web界面给beta测试者通过iPhoneSafari去安装最新的AdHoc激活文档及最新的beta测试版本。只需在服务器上安装一次服务端,就可以处理bundle identifier不同的多个应用程序(我强烈建 阅读全文
posted @ 2012-11-18 22:58 JackyYang7 阅读(677) 评论(0) 推荐(0)
摘要: 最近在用happe解析html中的图片。有个翻页操作,如果请求的html中没有需要解析的标记的话会造成xmllib2的内存泄露。这一个是happ的一个bug吧。修改方法:修改 XPathQuery.m 类中的NSArray *PerformXPathQuery(xmlDocPtr doc, NSString *query){xmlXPathContextPtr xpathCtx;xmlXPathObjectPtr xpathObj;/* Create xpath evaluation context */xpathCtx = xmlXPathNewContext(doc);if(xpathCt 阅读全文
posted @ 2012-11-18 22:57 JackyYang7 阅读(194) 评论(0) 推荐(0)
摘要: 代码下载地址:201207162220045782.zip使用Objective-C解析HTML或者XML,系统自带有两种方式一个是通过libxml,一个是通过NSXMLParser。不过这两种方式都需要自己写很多编码来处理抓取下来的内容,而且不是很直观。有一个比较好的类库hpple,它是一个轻量级的包装框架,可以很好的解决这个问题。它是用XPath来定位和解析HTML或者XML。安装步骤:-加入 libxml2 到你的项目中 Menu Project->Edit Project Settings 搜索“Header Search Paths”添加新的 search path “${SD 阅读全文
posted @ 2012-11-18 22:57 JackyYang7 阅读(203) 评论(0) 推荐(0)
摘要: 总结了一些开源的IOS项目,与大家分享。扫描wifi信息:http://code.google.com/p/uwecaugmentedrealityproject/http://code.google.com/p/iphone-wireless/条形码扫描:http://zbar.sourceforge.net/iphone/sdkdoc/install.htmltcp/ip的通讯协议:http://code.google.com/p/cocoaasyncsocket/voip/sip:http://code.google.com/p/siphon/http://code.google.com 阅读全文
posted @ 2012-11-18 22:52 JackyYang7 阅读(205) 评论(0) 推荐(0)
摘要: 代码下载地址:201207162237173664.zip大概你第一眼看来,动态调整高度是一件不容易的事情,而且打算解决它的第一个想法往往是不正确的。在这篇文章中我将展示如何使图表单元格的高度能根据里面文本内容来动态改变,同时又不必子类化UITableViewCell。你当然可以通过子类化它来实现,但是这样做会使得代码复杂因为设置高度是在图表本身的实例上而不是对单元格操作。下面你将会看到这其实是一件轻而易举的事情。对于图表来说能够动态调整高度是件很有意义的事情,我首先想到的需要这个功能的是当显示一列长度会变化的文本列表时,如果文本内容较少,它或许能够适合正常的单元格label,但是如果文本变长 阅读全文
posted @ 2012-11-18 22:52 JackyYang7 阅读(295) 评论(0) 推荐(0)
摘要: 代码下载地址:201207170853252862.zip今天就讲下UIScrollView的一些事情,这个可以拖动的组件无论在应用还是游戏开发都会经常用到,所以我们就一定要更加熟悉它了。下面我们开始下手咯。(1)初始化一般的组件初始化都可以alloc和init来初始化,上一段代码初始化。UIScrollView *sv = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.frame.size.width, 400)];一般的初始化也都有很多方法,都可以确定组件的Frame,或者一些属性,比如UIButton 阅读全文
posted @ 2012-11-18 22:51 JackyYang7 阅读(206) 评论(0) 推荐(0)
摘要: 代码下载地址:201207170954152133.zip项目中需要获取本机IP并发送到服务器,之前在网上找了一段代码获取ip,模拟器运行正常,但在真机上得到的却是一段乱七八糟的字符串。又在网上找的一段代码,It works:#define MAXADDRS 32extern char *if_names[MAXADDRS];extern char *ip_names[MAXADDRS];extern char *hw_addrs[MAXADDRS];extern unsigned long ip_addrs[MAXADDRS];// Function prototypesvoid InitA 阅读全文
posted @ 2012-11-18 22:50 JackyYang7 阅读(273) 评论(0) 推荐(0)
摘要: 这篇介绍几种变量类型的区别和注意点,虽然简单.但比较实用.1、当需要使用int类型的变量的时候,可以像写C的程序一样,用int,也可以用NSInteger,但更推荐使用NSInteger,因为这样就不用考虑设备是32位的还是64位的。2、NSUInteger是无符号的,即没有负数,NSInteger是有符号的。3、有人说既然都有了NSInteger等这些基础类型了为什么还要有NSNumber?它们的功能当然是不同的。NSInteger是基础类型,但是NSNumber是一个类。如果想要存储一个数值,直接用NSInteger是不行的,比如在一个Array里面这样用:NSArray *array= 阅读全文
posted @ 2012-11-18 22:50 JackyYang7 阅读(1228) 评论(0) 推荐(0)
摘要: 相信很多人买来iPhone第一件事就是为它贴膜、买保护套吧。在街边小摊买的手机贴膜,到了消费者手上少则七八十元,多则一二百元,但成本不足1块钱,是不是让你觉得差价太大,利润太多呢?有没有想过自己来贴膜?自己动手丰衣足食,让我们动手来为iPhone贴膜吧!来看看小编为贴膜准备的工具吧:膜(其中附带无尘布)大卷的封箱胶带公交卡(用来挤压气排出空气,或者其他卡片也可以)剪刀或者戒刀(用来剪胶带)Step 1:首先使用贴膜中附带的无尘布(有眼睛布或者专用屏幕擦拭布最好不过了)清理好屏幕上面的灰尘、油渍等等脏东西,记得也要在一个尽量少灰尘的环境下进行贴膜。然后用车卡在贴膜时候慢慢的一点点挤压出可能存在的 阅读全文
posted @ 2012-11-18 22:49 JackyYang7 阅读(604) 评论(0) 推荐(0)
摘要: 代码下载地址:201207171710488122.zip正则表达式功能强大,使用广泛,相信折腾代码的童鞋都深有体会。大多数语言都有正则表达式的内置函数库,但iOS的SDK却不支持,只能使用第三方类库RegexKitLite,一个非常不错的Objective-C语言的正则类,是NSString的category,调用灰常方便。一、到http://regexkit.sourceforge.net/下载RegexKitLite类,添加到项目中;二、在项目的framework中添加libicucore.dylib;三、调用正则:if ([aString isMatchedByRegex:@" 阅读全文
posted @ 2012-11-18 22:49 JackyYang7 阅读(290) 评论(0) 推荐(0)
摘要: 源码下载地址:201207211128467512.rar在android中我曾经利用zxing做过条形码扫描功能,现在又找到了一个iphone下免费开源的条形码扫描的sdk,下面介绍一下这个sdk的使用.免费的条形码是zbar,其使用地址是:http://zbar.sourceforge.net/iphone/sdkdoc/install.html下面是实现的效果:利用条形码,可以简单的得到二维码的值.具体的实现过程如下:首先下载zbr的sdk。然后,创建工程,iphone.scanbar。第三,把下载的ZBarSDK添加到工程中。第四,然后添加.framework到工程中。第五,然后添加一 阅读全文
posted @ 2012-11-18 22:48 JackyYang7 阅读(1547) 评论(0) 推荐(0)
摘要: 有时候需要动态缩小图片,这样你可以用UIImage来缩小图片,代码如下:@implementation UIImage (Extras)#pragma mark -#pragma mark Scale and crop image- (UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize{UIImage *sourceImage = self;UIImage *newImage = nil;CGSize imageSize = sourceImage.size;CGFloat width = imageSize.width;C 阅读全文
posted @ 2012-11-18 22:47 JackyYang7 阅读(192) 评论(0) 推荐(0)
摘要: 代码下载地址:201207302119082861.rar在IPhone SDK开发范例大全中,有很多的范例码下面这段范例码,示范了两张图片的交换,以及放大缩小的动画动画效果请参照下图#import <UIKit/UIKit.h>#define IMAGE_VIEW_1 100#define IMAGE_VIEW_2 101#define BIGRECT CGRectMake(0.0f, 0.0f, 320.0f, 435.0f)#define SMALLRECT CGRectMake(130.0f, 187.0f, 60.0f, 60.0f)@interface ToggleVi 阅读全文
posted @ 2012-11-18 22:47 JackyYang7 阅读(422) 评论(0) 推荐(0)
摘要: 这段代码示范如何取得iphone剩余磁盘空间/全部磁盘空间#include <sys/param.h>#include <sys/mount.h>long long freeSpace() {struct statfs buf;long long freespace = -1;if(statfs("/", &buf) >= 0){freespace = (long long)buf.f_bsize * buf.f_bfree;}return freespace;}+(float)getTotalDiskSpaceInBytes {NSA 阅读全文
posted @ 2012-11-18 22:45 JackyYang7 阅读(237) 评论(0) 推荐(0)
摘要: 有些朋友在使用Xcode 4.x的时候,会发现XIB无法从iPhone版转变为iPad版,很不方便,转载了一篇文章,希望对大家有用。在Xcode 3.x中,将xib从iPhone版转变为iPad版,通过Create iPad Version菜单。但在Xcode 4.x中,这个菜单找不到了。通过一番摸索,笔者发现可以用如下方法将xib转换为iPad版本。1、修改xib源文件xib文件其实是一个xml文件,你可以以文本方式编辑和修改它。在Project Navigator中,在xib文件上右键,选择“Open As ->Source Code”,即可以源代码方式查看xib文件,找到" 阅读全文
posted @ 2012-11-18 22:43 JackyYang7 阅读(234) 评论(0) 推荐(0)
摘要: 现在大家都喜欢用MAC系统,以下介绍几款MAC下面比较实用和流行的代码编辑器XcodeXcode 是一个Apple的解决方案,用来开发OSX和iOS应用。支持C,C++,Objective-C,Objective- C++,Java,AppleScript,Python和Ruby。使用Xcode你可以书写,debug和预览代码。提供了GUI builder和一个移动设备模拟器用来测试iOS应用。IDE基于开源工具例如GNU Debugger和Apple LLVM compiler。Xcode曾经需要付费,但是现在免费提供给大家使用。Coda 2Coda是一个all-in-one的web开发人员 阅读全文
posted @ 2012-11-18 22:43 JackyYang7 阅读(15483) 评论(0) 推荐(0)
摘要: 其实iOS中已经包含了中文字体。这不奇怪,否则iPhone是通过什么来显示中文?使用下列代码,我们可以查看iPhone上支持的所有字体名:NSArray *fontFamilies = [UIFontfamilyNames];for(NSString *fontFam in fontFamilies) {NSLog(@"=========%@=========",fontFam);NSArray *fontNames = [UIFontfontNamesForFamilyName:fontFam];for (NSString* fontName in fontNames) 阅读全文
posted @ 2012-11-18 22:42 JackyYang7 阅读(320) 评论(0) 推荐(0)
摘要: 源码下载:201208261028444663.zip使用Quartz Core绘制文字非常简单,苹果的Quartz 2D参考中演示了如何使用CGContextShowTextAtPoint函数绘制文本。不幸的是,这个函数不支持Unicode字符的绘制(这个函数只支持MacRoman一种编码)。如果你使用中文、日文等亚洲字体,那么就不得不悲催了。许多童鞋肯定会被文档中的这句话所吸引:“如果想使用MacRoman以外的文本编码,请调用CGContextShowGlyphsAtPoint替代CGContextShowTextAtPoint。”如果你采用这种办法,那么另一种悲剧就产生了。一、CGCo 阅读全文
posted @ 2012-11-18 22:42 JackyYang7 阅读(321) 评论(0) 推荐(0)
摘要: 这个Bug折腾了我近一天,读一个文件,NSLog输出文件内容,结果死活读不完整,不光中文没有,英文也不全,考虑了编码,文件大小,文件位置等各种可能的因素,尝试用各种方式重写这个操作,最后发现是NSLog的问题,跟文件一毛钱关系都没有,感谢这两个链接:link1 link2 。鉴于第二个链接已经解释的很清楚了,我这里就简要说一下,毕竟Wall还是有些麻烦重现Bug很简单,Xcode 4.3+,用lldb在真机上运行(模拟器没有问题)下面代码:NSLog(@"English1");NSLog(@"中文");NSLog(@"English2" 阅读全文
posted @ 2012-11-18 22:40 JackyYang7 阅读(401) 评论(0) 推荐(0)
摘要: 1、概要翻开ios官方开发文档,赫然发现上面对这三个属性的解释如下:frame:描述当前视图在其父视图中的位置和大小。bounds:描述当前视图在其自身坐标系统中的位置和大小。center:描述当前视图的中心点在其父视图中的位置。是不是有点迷糊?好吧,别急,让我们先说说ios的坐标系统。2、ios坐标系统ios以左上角为坐标原点(0,0),以原点向右侧为X轴正方向,原点下侧为Y轴正方向,如下图所示。ios采用CGPoint来表示点在坐标系上X、Y位置。我们可以通过CGPointMake(x,y)来创建一个坐标点:CGPoint point = CGPointMake(80,40)同时,ios采 阅读全文
posted @ 2012-11-18 22:40 JackyYang7 阅读(298) 评论(0) 推荐(0)
摘要: iPhone文件读写系统操作教程是本文要介绍的内容,对于一个运行在iPhone得app,它只能访问自己根目录下得一些文件(所谓sandbox).一个app发布到iPhone上后,它得目录结构如下: 1、其中获取 app root 可以用 NSHomeDirectory() 访问到; 2、Documents 目录就是我们可以用来写入并保存文件得地方,一般可通过以下代码获取,NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *doc... 阅读全文
posted @ 2012-11-18 22:39 JackyYang7 阅读(673) 评论(0) 推荐(0)
摘要: 对于app应用来说,使用列表的形式展现数据非UITableView莫属.在熟练掌握了用UITableView展示数据以后,是不是也遇到了需要删除数据的需求?是不是觉得在一行数据上划动一下,然后出现一个删除按钮很酷?废话少说,直奔正题,就由笔者来向您展示一下这个功能的实现是多么容易.先前的准备工作:第一步,准备好数据源.#import <UIKit/UIKit.h>@interface UITableCellSwapDeleteViewController : UIViewController <UITableViewDelegate>{IBOutlet UITableV 阅读全文
posted @ 2012-11-18 22:36 JackyYang7 阅读(161) 评论(0) 推荐(0)
摘要: 这里罗列了一些不同的网站,教你如何创建用户界面和伟大的应用程序以及App Store的开发。这些教程中的大部分是完全免费的。1)Apple Learning Objective C2)Design then Code3)Mobile Tutsplus4) Team Tree House5)Introduction to iOS Development Coding your First Application6)Stackoverflow – iOS7)iPhone App Development Where to Start8)iPhonedev9)Lynda10)Raywenderlich 阅读全文
posted @ 2012-11-18 22:34 JackyYang7 阅读(173) 评论(0) 推荐(0)
摘要: Java Media Framework 基础教程Java媒体架构基础内容表格1. 关于此指南2. 一个简单的音频播放器3. JMF用户接口组件4. JMF概念5. 传播和接收媒体6. 总结以及资源第一节. 关于此指南此指南包含的内容?Java 媒体架构(JMF)是一个令人激动的通用的API,它允许Java开发者用许多不同的方法处理媒体。本指南主要通过使用工作的例子提供一个JMF的一些主 要的特征的概述。阅读完本指南后,你将会明白JMF体系结构中的主要播放功能。你同样能正确的使用JMF,使用现存的例子和可为更多特殊功能扩展的源代 码。本指南包含着以下主题:· 下载和安装JMF 阅读全文
posted @ 2012-11-18 10:48 JackyYang7 阅读(1619) 评论(0) 推荐(0)