iphone开源项目列表收集

来源:互联网 发布:条形码数据库关联 编辑:程序博客网 时间:2024/05/19 02:41

iphone开源项目列表扫描wifi信息:

http://code.google.com/p/uwecaugmentedrealityproject/

http://code.google.com/p/iphone-wireless/

条形码扫描:

http://zbar.sourceforge.net/iphone/sdkdoc/install.html

tcp/ip的通讯协议:

http://code.google.com/p/cocoaasyncsocket/

voip/sip:

http://code.google.com/p/siphon/

http://code.google.com/p/asterisk-voicemail-for-iphone/

http://code.google.com/p/voiphone/

three20

https://github.com/facebook/three20

google gdata

http://code.google.com/p/gdata-objectivec-client/

720全景显示panoramagl

http://code.google.com/p/panoramagl/

jabber client

http://code.google.com/p/ichabber/

PLBlocks

http://code.google.com/p/plblocks/

image processing

http://code.google.com/p/simple-iphone-image-processing/

json编码解码:http://code.google.com/p/json-framework

base64编码解码:http://code.google.com/p/google-toolbox-for-ma

阅读全文评论转载#Iphone
12/26/2011
iPhone 播放Gif动画

1'导入ImageIO.framework、QuartzCore.framework和MobileCoreServices.framework框架

2‘建立GifAnimationView.h文件

代码:

#import

#import

#import

@interfaceGifAnimationView:UIView {

   CGImageSourceRef gif;

    Dictionary*gifProperties;

    size_tindex;

    size_tcount;

    NSTimer*timer;

    inttag_Index;

}

@property (nonatomic,assign)int tag_Index;

-(id)initWithFrame:(CGRect)frame filePath:(NSString *)filePath;

@end;

3'建立GifAnimationView.m文件

#import"GifAnimationView.h"

@implementationGIfAnimationView

@synthesize tag_Index;

-(id)initWithFrame:(CGRect)frame filePath:(NSString *)_filePath{

    self =[super in

阅读全文评论转载#Iphone
12/12/2011
iOS开源资源收集

本文转摘自:http://blog.csdn.net/jjj706/article/details/6943802

1.xml解析,xml解析的库可用的很多,我项目中用过比较顺手的就是GData,解析、构建xml都可以,很方便的实现。

http://www.raywenderlich.com/725/how-to-read-and-write-xml-documents-with-gdataxml

2.json库

json-framework

使用教程:http://blog.csdn.net/xiaoguan2008/article/details/6732683

JSONKit,根据他自己提供的数据它解析的时候比json-framework快4倍,比二进制的.plist 还快25%。

它是一个开源框架,基于BSD协议发布。由于json-framework是开放源代码的,当你需要使用它时你只需将json的源代码加入到你的工程中

3.HTTP 网络请求库

基本知道了ASIHttpRequest这个库之后绝大多数的含有http操作项目都使用了,很方便易用

ASIHttpRequest库极大的简化了网络通信,提供更先进的工具,例如文件上传工具,重定向处理工具、验证工具、等等。

4. 进度提示

进度,警告之类的提示控件

5. 异步加载图片

用起来非常方便,不是新的控件,使用代理实现了加载图片的方法

6.照片浏览器

PhotoViewer 

MWPhotoBrowser

7. Reedersstatus bar overlay 状态栏的一些扩展,例如下载队列在此处展现等等

8.ColorPicker 颜色选取器

9.kal——iPhone日历控件

10.NSAttributedString-Additions-for-HTML 可以将html解析

阅读全文评论转载#Iphone
11/17/2011
能在ARC下跑的ASIHTTPRequest框架(以及升了5.0,用了ARC后N多开源框架不能用的解决方案)

我在ios5sdk开发中,遇到asihttp因为arc的缘故,报了很多错,网上找了一上午,没找到一个具体解决办法。后来无意中发现,在target下面的buildphases下有一个compile source,下面有很多待编译文件。偶然看到一个compileflag,灵感一现,原来可以针对某些文件进行arc设置。这样,asihttp框架不能使用的问题不就解决了嘛。于是,在asihttp框架包含的所有.m文件后对应的compileflag处加上-fno-objc-arc,这样,我的asihttp就能成功在ios5项目下运行了。

此外,

在网上看到一篇关于arc下的asihttp框架,感觉思路不错,收藏了。

能在ARC下跑的ASIHTTPRequest框架(以及升了5.0,用了ARC后N多开源框架不能用的解决方案)

坑爹的ARC呀,用了ARC后几乎所有开源框架都不能用了

包括这个网络连接最常用的框架ASIHTTPRequest,于是我就傻乎乎的去改ASIHTTPRequest源代码

解决了什么release呀,类型转化呀,非本地对象不能回调呀,等等诸多问题后终于没见红了

结果程序一跑还是挂,郁闷啊。

忽然想到ARC不是编译级的吗?而且苹果提供那么多框架,不可能为了ARC全都改过吧

于是乎把ASIHTTPRequest源代码编译成framework,在ARC的项目中直接导入framework,果然可以用了

爽啊,这下不用担心以前的框架用不了了,都可以这么处理

下面放出ASIHTTPRequest.framework,

阅读全文评论(1)转载#Iphone
11/08/2011
UILabel设置自动使用高和换行

//初始化label  

UILabel *label [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];

//设置自动行数与字符换行

[label setNumberOfLines:0]; 

label.lineBreakMode UILineBreakModeWordWrap;  

// 测试字串  NSString *s @"这是一个测试!!!";

 UIFont *font [UIFont fontWithName:@"Arial" size:12];

 //设置一个行高上限

CGSize size CGSizeMake(320,2000);

//计算实际frame大小,并将label的frame变成实际大小  CGSize labelsize [s sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap]; [label setFrame:CGRectMake:(0,0, labelsize.width, labelsize.height)]; 

阅读全文评论转载#Iphone
11/07/2011
Xcode编译WebApps找不到js的错误解决办法
文章图片

引用原文地址:http://www.weste.net/2011/3-11/Xcode-PROJECT_DIR.html

最近使用Xcode做了一个简单的WebApps应用,就是使用UIWebview来调用一个页面,其中遇到几个问题,这里记录一下。其中一个就是编译的时候出现黄色感叹号的Warning,js文件都报错:warning:no rule to process file '$(PROJECT_DIR)/jquery-1.5.1.min.js' oftype sourcecode.javascript for architecture i386

  明显是找不到js文件。这是什么原因呢?

  其实是将js和html等资源文件加入到project的时候,Xcode错误的将js文件都放到了编译源代码(CompileSources)文件夹,以为js代码也需要“被编译”。

  解决的办法:

  只需要在XCode左侧的列表中Targets-> Compile Sources 中的js文件拖拽到Copy Bundle Resource中就可以了。

  知识点:

Copy BundleResources:是指生成的product的.app内将包含哪些资源文件。通过Copy BundleResources中内容的不同设置, 我们可以让不同的product包含不同的资源, 包括程序的主图标等,而不是把XCode的工程中列出的资源一股脑的包含进去

CompileSources:是指将有哪些源代码被编译

Link Binary WithLibraries:是指编译过程中会引用哪些库文件

阅读全文评论转载#Iphone
11/05/2011
xcode 编译器禁用 ARC (Automatic Referencing Counting)

code 多了一个 ARC的新编译器特性,在使用模板创建一个项目的时候会自动启用这个特性( -fobjc-arc)。

可以在 Build Setting =>"Apple LLVM compiler 3.0-Auto Reference Counting“ => "Mugratecide from MRR to ARC" 设置为 "MIGRATE code to ARC after building withPRECHECK" 可以跳过预语法检查报错, 且自动转换成ARC。

禁用可以设置 Build Setting =>"Apple LLVM compiler 3.0-Code Generation“ => “Objective-Cautomatic Reference Counting" 置为NO。

阅读全文评论转载#Iphone
11/05/2011
Xcode 4.2 中的Automatic Reference Counting (ARC)

原文引用地址:http://blog.sina.com.cn/s/blog_4c4c79950100t3uy.html

Automatic ReferenceCounting(ARC),自动引用计数,是开发Cocoa程序时的一个编译级别的特性,用于自动内存管理。

在XCode4.2中,使用模板新建一个工程,该工程将使用ARC特性。

如果你的iOSSDK是iOS5 seed release2,需要做如下修改,才能避免编译时的错误:

●在System/Library/Frameworks/CoreFoundation.framework/Headers/CFBase.h中,将:

CFTypeRefCFMakeCollectable(CFTypeRefcf)CF_AUTOMATED_REFCOUNT_UNAVAILABLE;

修改成:

CFTypeRefCFMakeCollectable(CFTypeRefcf);

●在System/Library/Frameworks/Foundation.framework/Headers/NSObject.h中,将:

return(__bridge_retainCFTypeRef)X;

修改成:

return(__bridge_retainedCFTypeRef)X;

使用ARC将让你远离烦人且容易遗漏的retain,release和autorelease等操作。

ARC的工作原理是,在你编译程序时,将内存操作的代码(retain,release或autorelease)自动添加到需要的位置。即底层上使用和ManualReferenceCounting(手工引用计数)一样的内存管理机制,但由于XCode自动帮你在编译时添加内存操作的代码,从而简化了编程的工作。

启用ARC,编译选项中需加上-fobjc-arc,不过这个由XCode在创建工程模板时帮你完成。

4.2以前版本的XCode都不支持ARC。

对操作系统也有要求:MacOS X v10.6或v10.7(6

阅读全文评论转载#Iphone
10/12/2011
ASIHTTPRequest 详解(转载)

在 网上看到一篇好文章转载自:http://www.cnblogs.com/zhw511006/archive/2011/03/31/2000954.html。在此复制一下,方便以后自己浏览!!

ASIHTTPRequest是一款极其强劲的HTTP访问开源项目。让简单的API完成复杂的功能,

如:

异步请求,队列请求,GZIP压缩,缓存,断点续传,进度跟踪,上传文件,HTTP认证

在新的版本中,还加入了Objective-C闭包Block的支持,让我们的代码更加轻简灵活。

下面就举例说明它的API用法。

发起一个同步请求

同步意为着线程阻塞,在主线程中使用此方法会使应用Hang住而不响应任何用户事件。所以,在应用程序设计时,大多被用在专门的子线程增加用户体验,或用异步请求代替(下面会讲到)。

-(IBAction)grabURL:(id)sender

{

NSURL *url = [NSURLURLWithString:@"http://allseeing-i.com"];

ASIHTTPRequest *request =[ASIHTTPRequest requestWithURL:url];

[requeststartSynchronous];

NSError *error = [requesterror];

if(!error) {

NSString *response = [requestresponseString];

}

}

a,用requestWithURL快捷方法获取ASIHTTPRequest的一个实例

b, startSynchronous方法启动同步访问,

c,由于是同步请求,没有基于事件的回调方法,所以从request的error属性获取错误信息。

d,responseString,为请求的返回NSString信息。

创建一个异步请求

异步请求

阅读全文评论(1)转载(1)#Iphone
09/14/2011
UINavigationItem如何设置backBarButtonItem

有A、B两个ViewController,假如A pushB;

UINavigationItem的3个属性有backBarButtonItem, leftBarButtonItem, rightBarButtonItem。

假如设置BViewController的leftBarButtonItem 和rightBarButtonItem.则采用

UIBarButtonItem*cancelBtnItem = [[UIBarButtonItemalloc]initWithTitle:"取消" style:UIBarButtonItemStylePlain target:self action:nil];]

self.navigationItem.leftBarButtonItem = cancelBtnItem ;

[cancelBtnItem release];

因此,rightBarButtonItem也是如此采用此方式实现。

但假若想实现BViewController的backBarButtonItem,就要在AViewController的ViewDidLoad中设置backBarButtonItem.

UIBarButtonItem *backButton =[[UIBarButtonItem alloc] initWithTitle:"返回" style:UIBarButtonItemStylePlaitarget:self  action:nil];

self.navigationItem.backBarButtonItem = backButton;

这样才可以在B中设置backBarButtonItem.此时,才会在B中有效果出现,显示返回字样。否则,则无设置效果。

原创粉丝点击