iphone app开发经验(一)

1.在viewDidLoad时对属性的附值要注意在属性前加self,比如[self xxx]=jjj;

2.从文件读取文本
 
NSString *htmlstring=[[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];

// encoding:NSUTF8StringEncoding error:nil 这一段一定要加,不然中文字会乱码


3.//枚举判断后缀名是否存在
 
NSString *filename;
while (filename = [direnum nextObject]) {
if([[filename pathExtension] hasSuffix:@"jpg"]){
[files addObject:filename];
}
}


4.Debug不一定能马上知道错误在哪,可以先看warnning的提示,大部分问题出在那里。

5.————————修改程序名字———————————–
这个功能太常用了:程序员经常以一个名字开始编写一个应用;但在发布之前,常常需要为应用更名.或者想从一个现成程序开始,修改成一个新的应用,而不需要copy\paste.但苹果公司没有提供一个简单的实现方法.本文讲述的方法可以让你随心所欲修改应用输出的名称.
1.复制现有文件夹,将拷贝更名为你所想要的名字.
2.打开新文件夹,将.xcodeproj更名
3.右键点击.xcodeproj并选择Show package contents,弹出一个对话框包含了几个文件.(事实上.xcodeproj是这几个文件打成的包)
4.用textEdit打开 project.pbxproj文件,将所有旧名字替换成为新的.
5.删除build文件夹
6.用XCode载入该工程,点击 Build/Clean all targets
然后重新编译工程 — 应当能看到输出的应用有了新名字吧!有的文章说需要修改.pch文件名,但那样更复杂了,所以这里不做介绍.


6.如果你不希望应用运行时 iPhone 进入锁屏待机状态,加入下面这行代码即可
 
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];


7.[url="http://blog.prosight.me/index.php/tag/nslocalizedstring"]Cocoa程序支持多国语言环境[/url]

8.调用Safari
  
NSURL *url = [[NSURL alloc] initWithString: @"http://www.oreilly.com/" ];
[ [ UIApplication sharedApplication ] openURL: url ];


9.挂起与复原
  
- (void)applicationWillResignActive:(UIApplication *) application {
NSLog(@"About to be suspended");

/* Code to prepare for suspend */
}


- (void)applicationDidBecomeActive:(UIApplication *) application {
NSLog(@"Became active");

/* 为恢复做准备的代码 */
}


10.发起电话呼叫
  
NSURL *url = [ [ NSURL alloc ]
initWithString: @"tel:212-555-1234" ];
[ [ UIApplication sharedApplication ] openURL: url ];


11.隐藏toolbar, 点击屏幕又出现回来
   
[UIView beginAnimations:@"test" context:NULL];
[UIView setAnimationDuration:0.4];
// 这里放代码,减速左右,做到淡入淡出
[UIView commitAnimations];


12.删除subviews
 
// With some valid UIView *view:
for(UIView *subview in [view subviews]) {
[subview removeFromSuperview];
}


13.增加进度条或等待风火轮
 
- (void) createProgressionAlertWithMessage:(NSString *)message withActivity:(BOOL)activity
{
UIAlertView *progressAlert = [[UIAlertView alloc] initWithTitle: message
message: @"Please wait..."
delegate: self
cancelButtonTitle: nil
otherButtonTitles: nil];

// Create the progress bar and add it to the alert
if (activity) {
UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
activityView.frame = CGRectMake(139.0f-18.0f, 80.0f, 37.0f, 37.0f);
[progressAlert addSubview:activityView];
[activityView startAnimating];
} else {
UIProgressView *progressView = [[UIProgressView alloc] initWithFrame:CGRectMake(30.0f, 80.0f, 225.0f, 90.0f)];
[progressAlert addSubview:progressView];
[progressView setProgressViewStyle: UIProgressViewStyleBar];
}
[progressAlert show];
[progressAlert release];
}


14.iPhone的特殊URL
在iPhone中,可以直接用UIApp打开URL地址。如下所示:
 
[ UIApp openURL: [ NSURL URLWithString:@"http://www.apple.com" ] ];

或者:
 
[ UIApp openURL: [ NSURL URLWithString:@"mailto:apple@mac.com?Subject=hello" ] ];


与此同时,iPhone还包含一些其他除了http://或者mailto:之外的URL:

sms:// 可以调用短信程序

tel:// 可以拨打电话

itms:// 可以打开MobileStore.app

audio-player-event:// 可以打开iPod

audio-player-event://?uicmd=show-purchased-playlist 可以打开iPod播放列表

video-player-event:// 可以打开iPod中的视频

15.让iAd 在取不到广告时隐藏广告条的方法
相信很多苹果开发者希望在自己的应用里加入 iAd 广告以提高收入,但是 iAd 广告显示目前仅限美国,所以取不到广告时,要让广告条隐藏,可以使用以下代码
 
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
if (self.bannerIsVisible)
{
[UIView beginAnimations:@"animateAdBannerOff" context:NULL];
// assumes the banner view is at the top of the screen.
banner.frame = CGRectOffset(banner.frame, 0, -50);
[UIView commitAnimations];
self.bannerIsVisible = NO;
}
}

如果 iAd 接收到广告,当然要恢复显示广告条了,代码

 
- (void)bannerViewDidLoadAd:(ADBannerView *)banner



16.iOS 应用里发 Twitter 的代码

- (void) postToTwitter
{
// Since this will be launched in a separate thread, we need
// an autorelease pool
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:
[NSURL URLWithString:@"http://TWITTER_ACCOUNT:PASSWORD@twitter.com/statuses/update.xml"]
cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0];

// The text to post
NSString *msg = @"testing";

// Set the HTTP request method
[request setHTTPMethod:@"POST"];

[request setHTTPBody:[[NSString stringWithFormat:@"status=%@", msg]
dataUsingEncoding:NSASCIIStringEncoding]];

NSURLResponse *response;
NSError *error;

if ([NSURLConnection sendSynchronousRequest:request
returningResponse:&response error:&error] != nil)
NSLog(@"Posted to Twitter successfully.");
else
NSLog(@"Error posting to Twitter.");

// Release pool
[pool release];
}


[NSThread detachNewThreadSelector:@selector(postToTwitter)
toTarget:self withObject:nil];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值