IOS 开发心得(1)
来源:互联网 发布:机床主轴结构优化设计 编辑:程序博客网 时间:2024/06/05 15:24
不定期更新吧。
这次做一个从天气软件。基本上是这样设计的。
首先,找个免费的 free weather api, 然后用某种格式获取所选地区的信息。
其实网上有很多的这种提供天气服务的网站,之前看到中国有个网站叫做中国气象网,提供相关的数据。不过当时是因为要在某网站上添加定制的天气服务。不太一样。
但是数据源是相同的,所以真正需要注意的是如何用IOS SDK处理不用格式的数据。
找到一个网站,http://www.wunderground.com。这个网站提供免费和收费两种套餐。免费的可以提供两天的某地区预报。收费的提供当地五百天之内的天气信息和未来一周的天气预报。明显我不需要这么专业的数据。搞个免费的玩玩就行了。
======================================================
一般的网站都提供JSON和XML两种数据格式。我看有的网站也提供CSV格式的数据。既然这个App的数据十分轻量级,所以不妨用JSON当数据源。
在上面这个网站上申请一个账号,然后添加一个App的类型,之后网站会提供一个key,利用这个key构成提取数据的url连接。
前期准备大概就这么多了。
======================================================
======================================================
======================================================
======================================================
- (IBAction)pushThenReturn:(id)sender {
[_cityNameTextFieldresignFirstResponder];
[_stateNameTextFieldresignFirstResponder];
}
第二种方法是当键盘出来之后,在键盘的右下角有一个return或者是done之类的按键,我们允许用户点击该按键,然后退出键盘。-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
if((textField == _cityNameTextField) || (textField ==_stateNameTextField))
{
[textField resignFirstResponder];
}
return YES;
}
代码的意思是,当第一个文本输入元件或者第二个文本输入元件被激活,点击return按键,我们就释放当前的第一响应状态。======================================================
======================================================
======================================================
- (IBAction)getWeather:(id)sender {
NSString *requestUrlSectionOne=[[NSStringalloc]initWithFormat:@"%@",@"http://api.wunderground.com/api/e9777d6c3a883d5b/conditions/q/"];
NSString *requestUrlSectionTwo=_stateNameTextField.text;
NSString *requestUrlSectionThree=_cityNameTextField.text;
NSString *requestUrlSlash=@"/";
NSString *requestUrlLast=@".json";
NSString *requestUrl = [NSStringstringWithFormat:@"%@%@%@%@%@", requestUrlSectionOne,requestUrlSectionTwo,requestUrlSlash,requestUrlSectionThree,requestUrlLast];
// NSString *requestUrl =@"http://api.wunderground.com/api/e9777d6c3a883d5b/conditions/q/KS/hays.json";
NSURL *url=[NSURLURLWithString:requestUrl];
NSURLRequest *urlRequest = [[NSURLRequestalloc]initWithURL:url];
NSURLConnection *connection = [[NSURLConnectionalloc]initWithRequest:urlRequestdelegate:self];
[urlRequest release];
[connection release];
}
这段程序负责获取用户输入内容,然后跟网站建立链接。-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
outString = [[NSStringalloc]initWithData:data encoding:NSUTF8StringEncoding];
}
这段程序将获取到的内容放入到一个String类型的字符串中,留作以后处理。
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSMutableDictionary *allJsonContent = [outStringJSONValue];
NSMutableDictionary *jsonValueLevelOne = [allJsonContentobjectForKey:@"current_observation"];
NSMutableDictionary *jsonValueLevelTwo = [jsonValueLevelOneobjectForKey:@"display_location"];
_cityNameLabel.text=[[NSStringalloc]initWithFormat:@"%@", [jsonValueLevelTwoobjectForKey:@"full"]];
_zipCodeLabel.text=[[NSStringalloc]initWithFormat:@"%@", [jsonValueLevelTwoobjectForKey:@"zip"]];
_weatherLabel.text=[[NSStringalloc]initWithFormat:@"%@", [jsonValueLevelOneobjectForKey:@"weather"]];
_tempLabel.text=[[NSStringalloc]initWithFormat:@"%@",[jsonValueLevelOneobjectForKey:@"temperature_string"]];
}
首先将获取到得整个数据转换成一层键值表。然后,获取第二层键值表,接着获取第三层键值表。
在之后从键值表中获取具体的内容,并输入到相应的元件中。
然后- -就结束了。
- IOS 开发心得(1)
- iOS开发心得记录1
- iOS开发心得一则
- IOS开发心得总结
- iOS开发心得分享
- ios开发心得之一
- iOS开发自学心得
- IOS开发心得汇总
- ios企业级应用开发心得
- iOS开发快速成长心得
- iOS开发,事半功倍基本心得
- iOS开发,事半功倍基本心得
- ObjectARX开发心得(1)
- ios开发笔记--关于delegate(委托)的使用心得
- ios开发笔记--关于delegate(委托)的使用心得
- iOS开发心得与体会(其他人的)
- 【每天总结一个ios开发心得…
- ios开发中归档的一些心得
- AtomicBoolean使用
- Unity3D Shader官方教程翻译(十九)----Shader语法,编写表面着色器
- ios之美化按钮
- Linux多线程与信号
- 博客已搬家
- IOS 开发心得(1)
- android4.0 wifi启动流程
- 串口概述
- android 处理图片工具
- 消费心理学原理:促成用户购买决策方法四则
- Java加载Class文件的原理机制
- android中的JNI整理
- oracle__ 金钱用逗号显示
- AutomanX 学习日志(1)