スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

bi酱的iOS开发课堂,part: unknown

在同一个UIAlertView里多次调用UIAlertView:
主要问题在- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex上,当只有一个或者几个按钮的时候用if (buttonIndex == 1) {...}来区分,但是如果是多个UIAlertView就会出现冲突。
解决方法也比较简单,首先定义不同的AlertView用不同的tag。比如xxxAlert.tag = 4;
然后在- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex里用if (alertView.tag == 4) {...}这样的来区分不同的AlertView,之后再用buttonIndex来定义每个按键的作用。

长按按钮激活:
这个的话经常被用来做隐藏功能。
UILongPressGestureRecognizer *tapAndHold = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapAndHold)];
[tapAndHold setMinimumPressDuration:10];
[self.holdbutton addGestureRecognizer:tapAndHold];
[tapAndHold release];

之后只要-(void)handleTapAndHold{...}就可以了

程序内发送邮件:
首先导入MessageUI.framework,然后添加

#import 《MessageUI/MessageUI.h》
#import 《MessageUI/MFMailComposeViewController.h》

到.h文件里。
接着就是代码:

-(IBAction)buttonpressed{
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
[picker setSubject:@"hello~"];
NSArray *toRecipients = [NSArray arrayWithObject:@"xxx@xx.com"];
[picker setToRecipients:toRecipients];
NSString *emailBody = @"world~";
[picker setMessageBody:emailBody isHTML:NO];

[self presentModalViewController:picker animated:YES];
[picker release];

}
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
[self dismissModalViewControllerAnimated:YES];
}

这样就会产生一个主题为hello~内容为world~的邮件,收件人是xxx@xx.com。注意下面的- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error 不可少,少了之后就无法关闭邮件界面了。
然后...如果要对信件内容分行怎么办?如果是AlertView里是可以使用/n来分行的,但是NSString里不行。于是得用上一点小技巧:首先把[picker setMessageBody:emailBody isHTML:NO];里的NO改成YES。接着修改emailBody,HTML里《/p》代表空行,于是就可以变成"123456《/p》654321",输出就是:
123456
654321

POST和GET的区别:
为了方便起见,我就把要发送的string统一称text,网址也统一了,这样好区分。
首先是GET的:

NSString *urlString = [NSString stringWithFormat:@"http://xxx.com/get.php?get=%@",text];
NSURL *url = [[NSURL alloc] initWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSError *error;
NSData *urlData;
NSURLResponse *response;
urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *data=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
NSLog(@"response:%@",data);//服务器返回信息,用于查看是否正常发送


POST的:

NSString *post = text;
NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://xxx.com/post.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSError *error;
NSURLResponse *response;
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *data=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
NSLog(@"response:%@",data);//服务器返回,用于检测是否正常发送

感觉上POST比GET更复杂,GET的方式就好像我们日常在浏览器中输入网址一样,所以直接就是个url访问所以当然简单得多了~
当然如果需要的话可以在request头部也就是http header加入身份信息,比如cookie什么的:(结合上面的代码)

/*get或者post开始加载..*/
NSHTTPCookie *cookie;
NSMutableArray *cookies;
NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [cookieJar cookies]) {
[cookies addObject:cookie];
cookies = [NSMutableArray array];
/*开始加载request..*/
}
NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies:cookies];
[request setAllHTTPHeaderFields:headers];
/*服务器返回代码...*/


这次就教这么多,希望对新手能用得上....以后再教其他的,比如oauth认证还有JSON以及XML解析等..
関連記事
スポンサーサイト

テーマ : Software
ジャンル : コンピュータ

コメントの投稿

非公開コメント

カレンダー
11 | 2016/12 | 01
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
プロフィール

bi119aTe5hXk

Author:bi119aTe5hXk
こんにちは(わ?)、私biです。
我是bi119aTe5hXk,觉得麻烦的话直接叫我bi就可以了~(快感谢我
iOS/Mac Developer/Geek. ACG+Hentai.
billgateshxk是我的旧名。
不喜欢Windows请不要谈论这些相关的。

不是夶请不要用土壕称呼人家!哼!

Powered by:

ブログ内検索
月別アーカイブ
カテゴリー
RSSリンクの表示
リンク
ブロとも申請フォーム

Become friends with me~

Products

MoeApps Lite

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

MoeApps

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

DevDoc

GitHub GoogleCode Get App

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

MoeApks

「NOW MAKING」

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

Moefou for Mac (API)

GitHub

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

RegIP

GitHub Get App

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

萌否电台 for Mac

Get App More Info

Bangumi
Bill gates hxk 的个人主页
メール

名前:
邮件地址:
标题
内容:

注意:点击提交将会将你的节操随从邮件一起发送喔。

アクセスカウンタ
QR Code
QR
Support us!
Grobal user:

国内可选支付宝:

Twitter

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。