iPhone开发知识和项目

转自:http://blog.csdn.net/dongfengsun/article/details/4870650

前言:iPhone是个极具艺术性的平台,相信大家在开发过程中一定有很多感触,希望能写出来一起交流,所以开了这个帖子,以后还会维护。

 

如果大家和我一样有感触的话,可以跟在帖子下面,最好简短并附上中英文:)


1:如果无法保证子类行为的一致性,那么就用委托

If the subClass cann't keep with superClass,use delegate rather than inheritance.

 

2:屏幕上看到的,都是UIVew

Everything you see on Screen is UIView.

 

3:如果对性能要求高,慎用Interface Build

if application's performance is important,be discreet for the interface build.

 

4:copy是创建,retain是引用

the copy operation is create a new one,but the retain operation is just a reference.

 

5:alloc需要release,convenient不需要release

alloc method need corresponding release method,but convenient method not.

 

6:加载到NSArray/NSMutableArray里的对象,不需要负责release

The objects added to NSArray/NSMutableArray need not to be released.

 

7:IBOutlet,IBAction为你开启了访问Interface Build中对象的大门

IBOutlet and IBAction open the door to access the objects in Interface build.

 

8:UIApplicationDelegate负责应用程序的生命周期,而UIViewController负责View的生命周期

UIApplicationDelegate is responsible for the application life cycle,but UIViewController for the UIView.

 

9:为了程序的健壮性,请尽量实现Delegate的生命周期函数

if you want to develop a robust application,implement the life cycle methods as more as possbile.

 

10:哥触摸的不是UIEvent,而是NSSet的UIView

what you touch on screen is not UIEvent but UIView



一些开源项目:

扫描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-mac/source/browse/trunk/Foundation/?r=87

xml解析:https://github.com/schwa/TouchXML

安全保存用户密码到keychain中:https://github.com/ldandersen/scifihifi-iphone

加载等待特效框架(private api):https://github.com/jdg/MBProgressHUD

http等相关协议封装:http://allseeing-i.com/ASIHTTPRequest

下拉刷新代码:https://github.com/enormego/EGOTableViewPullRefresh

异步加载图片并缓存代码:http://www.markj.net/iphone-asynchronous-table-image/

iphone TTS:https://bitbucket.org/sfoster/iphone-tts

iphone cook book 源码:https://github.com/erica/iphone-3.0-cookbook-

iphone正则表达式:http://regexkit.sourceforge.net/RegexKitLite/

OAuth认证:  http://code.google.com/p/oauth/
http://code.google.com/p/oauthconsumer/

蓝牙协议栈:http://code.google.com/p/btstack/

语音识别:http://www.politepix.com/openears/

ShareKit:http://www.getsharekit.com/install/

日历控件:http://code.google.com/p/iphonecal/

https://github.com/klazuka/Kal

zlib, openssl:http://code.google.com/p/ios-static-libraries/

地球显示信息:http://code.google.com/p/whirlyglobe/




 has been modified since the precompiled header was built
错误


  (原因:预编译头的时候文件被修改);
 解决方法:1.Select Product > Clean from the Xcode menu
  

快捷键shift+command+k;clean一下




--------------------------------------------------------

字符串拼接

NSString* string; // 结果字符串

NSString* string1, string2; //已存在的字符串,需要将string1和string2连接起来

//方法1.
string = [NSString initWithFormat:@"%@,%@", string1, string2 ];

//方法2.
string = [string1 stringByAppendingString:string2];

//方法3 .

string = [string stringByAppendingFormat:@"%@,%@",string1, string2];
经常用的是第二种方法。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值