xcode objective-c 怎么经纬度判断国内外手机是国内的还是国外的阿

iOS开发,大家有什么推荐的书吗?或关于Objective-C的?
学iOS 开发,求推荐适合自学的书或者论坛教程之类的。谢谢
题主也是有相关软件开发基础的人
自学iOS的话
还是很容易题主刚开始学iOS
建议选择swift语言学习
相对比较简单一点
通过swift语言学完以后
在学习OC可以直接看视频教程学习,视频教程学起来快些
理解起来也更容易具体学习路线,题主可以参考《》这套教程的教学大纲学习:第一阶段:语言基础和iOS入门秒学Swift开发语言初始Objective-CiOS8 App开发快速入门第二阶段:玩转界面iOS开发玩转界面-UIKitUIKit-表格,集合和控制器IOS动画编程IOS多点触控与手势识别iOS开发必不可少-数据存储第三阶段:玩转网络iOS网络编程iOS多线程及异步任务处理iOS多媒体编程iOS地理位置及定位系统第四阶段:项目实战-选修Swift项目:WeChatSwift项目:网络音乐播放器Swift项目:超酷银行卡扫描器Swift项目:小波赌大小OC项目:新闻阅读器APPoc项目:驾照助手第五阶段:知识扩展-选修Objective-C的重点难点分析敏捷开发软件工程XCode详解及iOSApp上传Objective-c之iOS开发入门实战学习过程中可以参考:,避免走弯路学完后,题主还需要找一些官方文档、开源代码学习然后再自己动手开发一两个小应用
如果都没问题了恭喜题主,你可以去应聘iOS开发实习生了,在企业中再去沉淀一两年
基本上就能比较顺溜的从事iOS开发工作了
本人算不上啥专业人士,不过也和lz有些像,自身专业是机械方向,11年时大一看好iOS开发,自学了相关,今年毕业找了相关工作,说下我的个人学习流程吧==========================================总体看过的几本书包括:C、C++、数据结构、算法导论、Objective-C 2.0(一本红色的书,不过感觉有点老)、一本小日本写的相关Objective-C的内存机制方面的书(书名忘了)、cocoa设计模式以及一本关于UIKit的介绍书籍看了这些书以后,基本能算摸到iOS开发的一个门框吧,或者还只是看到那个门==刚毕业的话一般点的公司应该还是能进了,但好企业肯定还是不够的,当然我进公司以后得知选择我并不是因为我技术多好,而是因为我在学校期间做过两个App上架Store并且是自学的比较有那种愿意学习的态度适合这个行业,或许这就是“狗屎运”吧==========================================下面说说关于swift和Objective-C选择上的抉择(现下很多人最喜欢问这个就说下吧)Objective-C和swift本质没多大差别,关键是iOS开发的设计模式和一些cocoa的机制要掌握lz已是大三,那么后年就会需要步入社会,如果按老一代人的话说更“懂事”些,可能明年年底就会步入社会寻找相应岗位实习,那么就目前来看swift还没有那么高的普及率,至少在工作环境上是的,并且学习资料想对匮乏,lz最好是从Objective-C学起比较好,swift具有很好的使用方便性,但也并不“简单”,学好并不容易,一直觉得swift是一个很好的开发语言,但绝对不是一个适合新手学习的语言,如果没学oc,可能短期还是比较难找到工作的
说一下我的学习历程:我是直接上手swift开发的,本人是嵌入式开发工程师,主要语言是C。但其实学习swift也没有什么困难。1.把swift语法和一些基础知识看一下,过一遍2.看一遍斯坦福大学的视频,地址3.然后学习做一个demo,我一开始是做一个todo的demo,这里学习了tableview的相关知识4.把自己学习的过程记录下来,遇到好的资源也要记录,我的记录5.然后经常逛,看了上面的一些教程,好的我都记录在github上了。看到了一个Alamofire教程(),学习到了collectionview和Alamofire,然后自己做了一个美图浏览器(),要善于用github,上面有很多的好资源。6.后来觉得美图浏览器查看图片效果不好,模仿微博查看图片的方式做了一个PhotoBrowser(),这个继承UIView,可以集成到自己项目里。7.期间也做了三个app,一个上架了,两个还在审核。8.最重要的一点:Just Do It!!!!Just Do It!!!!Just Do It!!!!只要去做,去钻研,可以按照我的方法来。我每天下班回家学习swift,到12点就只能睡觉了,不然明天就没精神干活了,时间不是很充裕。题主还有大把时间可以学习,我想应该进度很快的。大家可以多多交流哈
有语言基础直接找视频看学oc 推荐李明杰的
oc差不多的话 推荐一本书 iOS编程 第四版
入门神书 认真看完这本书入门没问题了
之后就不问说了吧……
学长,我也是对IOS开发有兴趣,你说你之前有学java,找份工作还是不难的吧。为什么不深入?还是学ios,swift要有java基础吗?
苹果官方就出了开发者文档 详细介绍他的开发框架 swift2语言 ibook商店就有下载 不过是纯英文的 但是这种工具书英文本身也不难啦
objective-c基础教程,这书不错,学习基础的话可以看下~总之学习iOS开发一定要多动手,多敲代码!
Objective-C语言
已有帐号?
无法登录?
社交帐号登录首先 OC中的对象都是用指针表示,方法的调用是基于消息机制实现,== 比较的自然是指针指向的地址
然后 说下 isEqual 和 isEqualToString 的区别
IsEqual 是 NSObject 的方法 ,而 isEqualToString 是 NSString 的方法
因此从继承关系角度来说isEqualToString 是 isEqual 的衍生方法
首先贴个苹果官方重写isEqual 的demo
-&(BOOL)isEqual:(id)other&{ &
&if&(other&==&self)& &
&return&YES; &
&if&(!other&||&![other&isKindOfClass:[self&class]]) &
&return&NO; &
&return&[self&isEqualToWidget:other]; &
-&(BOOL)isEqualToWidget:(MyWidget&*)aWidget&{ &
&if&(self&==&aWidget) &
&return&YES; &
&if&(![(id)[self&name]&isEqual:[aWidget&name]]) &
&return&NO; &
&if&(![[self&data]&isEqualToData:[aWidget&data]]) &
&return&NO; &
&return&YES; &
简单说一下:
首先都会判断 指针是否相等 ,相等直接返回YES,
不相等再判断是否是同类对象或非空,空或非同类对象直接返回NO,
而后依次判断对象对应的属性是否相等,若均相等,返回YES
这样就不难理解 isEqualToString 的实现内部的了
最后解释 HashCode 和 isEqual 的关系
hash和isEqual:方法都在NSObject协议中声明,且彼此关系紧密。实现hash方法必须返回一个整型数(NSInterger),作为哈希表结构中的表地址。
两个对象相等(isEqual:方法的判断结果)意味着它们有相同的哈希值。如果哈希值相同,两个对象不一定相等。
如果您的对象可能被包含在象NSSet这样的集合中,则需要定义hash方法,比如UIWebView
并确保该方法在两个对象相等的时候返回相同的哈希值。
参考测试代码:
NSString *str1 = [NSString stringWithFormat:@"skyming"];
NSString *str2 = [NSString stringWithFormat:@"skyming"];
NSLog(@"str1的地址--%p--str2的地址--%p",str1,str2);
NSLog(@"== %d",str1 == str2);
NSLog(@"isEqual--%d",[str1 isEqual:str2]);
NSLog(@"isEqualToString--%d",[str1 isEqualToString:str2]);
UIImage *image1 = [UIImage imageNamed:str1];
UIImage *image2 = [UIImage imageNamed:str2];
NSLog(@"image1的地址--%p--image2的地址--%p",image1,image2);
NSLog(@"== %d",image1 == image2);
NSLog(@"isEqual--%d",[image1 isEqual:image2]);
UIImageView *imageView1 = [[UIImageView alloc]initWithImage:image1];
UIImageView *imageView2 = [[UIImageView alloc]initWithImage:image2];
NSLog(@"imageView1地址--%p-imageView2地址--%p",imageView1,imageView2);
NSLog(@"== %d",imageView1 == imageView2);
NSLog(@"isEqual--%d",[imageView1 isEqual:imageView2]);}
参考测试结果:
21:36:38.975 NSString[2029:60b] str1的地址--0x15586d00--str2的地址--0x15586a40
21:36:38.982 NSString[2029:60b] == 0
21:36:38.988 NSString[2029:60b] isEqual--1
21:36:38.992 NSString[2029:60b] isEqualToString--1
21:36:39.004 NSString[2029:60b] image1的地址--0x1558ad00--image2的地址--0x1558ad00
21:36:39.009 NSString[2029:60b] == 1
21:36:39.013 NSString[2029:60b] isEqual--1
21:36:39.017 NSString[2029:60b] imageView1地址--0x-imageView2地址--0x1558ba50
21:36:39.022 NSString[2029:60b] == 0
21:36:39.026 NSString[2029:60b] isEqual--0
参考资料:
阅读(...) 评论()作为新手,长远地看,该学习 Objective-C 还是 Swift?
本人是高二学生,出国方向,正在考虑将来也许会将程序员作为专业甚至职业。目前我对这一行业了解不多,仅仅上过一学期C语言的课程,但是这个课让我对编程有了兴趣。目前我想学习iOS开发,但是不知道如何从Objective-C和Swift之间选择。我读了知乎上一些答案,大抵说的是,以后Swift终将取代Objective-C,但是目前来讲还是Objective-C比较重要。那么如果以长远的将它作为专业/职业的角度来看(至少数年吧),我现在该怎么选择?另外,在定下来语言之后,我又该如何开始学习?学习流程应该怎么规划?我现在已经基本考完了出国有关的考试,会有很多的空闲时间。我是应该看网上的一些视频公开课,是看书,还是其他的方式?如果可以的话,我希望能在四个月左右的时间中做出点小成果。
真正从「长远角度」看,学习 Objective-C 还是 Swift 语言其实很不重要。Swift 刚发布的时候有人说「这下所有人都回到零起点了」,实际上是外行的一个常见的误解。Objective-C / Swift 和 iOS 开发是两个不同的概念,这点希望你清楚。前者仅仅是一门编程语言,而后者则包括了编程思想、Cocoa 框架的使用,甚至交互设计规范、界面设计规范等 iOS 开发所需的一整套东西,并且绝大部分是和语言无关的。从学习的角度看,大部分时间你将花在学习 后者上,而具体语言和语法只占很小的比例。Objective-C 和 Swift 虽然语法上差异很大,但是背后的思想以及所依托的类库都是相同的。关于 iOS 应用开发你能想到的绝大多数问题,例如:一个应用的代码是从哪里开始执行的?如何建立一个按钮,并实现用户点击这个按钮之后调用一个函数?如何修改一个标签的文字?如何控制系统发出声音或者播放视频?如何检测设备的朝向?它们的答案都取决于 Cocoa 框架如何使用,而非具体采用的语言是什么——你关注的应该是背后的「我该做什么,为什么要这么做」,而不是简单的「具体怎么去写」——不同语言仅仅是一个写法不同而已,手册和网络上都可以查到,用多了自然掌握。因此,对于一个已经掌握了 Objective-C 和 iOS 开发的人,迁移到 Swift 是几天就可以搞定的;而对于一个掌握了 Swift 和 iOS 开发的人,迁移到 Objective-C 也不会很困难。至于选择哪个语言,我想说 Swift 代替 Objective-C 肯定是有原因的,必须承认 Objective-C 的很多语法的确很怪很繁杂(Objective-C 的啰嗦是出了名的),可能对编程语言的初学者不太友好,Swift 接受起来会稍微容易一些。但另一个事实是,目前 Swift 的文档、教程和代码还比较少,并且大部分都是关于语法的。虽然有一两个官方文档是关于如何从 Objective-C 切换到 Swift 的,也有一些 Swift 的示例代码,但和 iOS 开发这个庞大的体系比起来,覆盖面仍然很窄。这对于已经掌握 Objective-C 的开发者不是问题,但是对于什么都不会的初学者,看过 Swift 的文档之后能写一个类似 C 的控制台应用程序出来,但是很难写一个你自己想要的完整可用的 iOS App 出来。因此,基于你的情况,我还是倾向于推荐从 Objective-C 开始学起。关于学习流程,建议以实践为主,看书为辅。可以先找本书了解下 Objective-C 的基本语法(我当时看的是这本:),然后看 Apple 的官方教程来入门:。等你把这个教程的内容基本上理解了,就开始尝试自己开发一个小程序,从最简单的视图开始,然后开始使用 table view,可以尝试模拟一下 iOS 中「设置」应用的界面。最重要的参考资料其实是 Apple 的官方文档()。这里特别要表扬一下 Apple 的文档,写的还是很不错的,非常清楚详细。个人感觉看这些文档就足够了;如果你需要,可以再单独买一本书,比如我买了这本:。注意,各个 iOS 版本的 API 略有不同,目前来说最好选择对应 iOS 7 的教程。等你把 table view 完全用会了,剩下的就不需要我教了。在这期间,你会遇到无数的问题和错误,你想做的很多事情书上是没有的,这时候要求助于网络。果断抛弃百度吧,直接用英文 Google 搜索,注意 Stack Overflow 里面的问题和回答。Stack Overflow 是一个程序员的问答社区,水平非常高(如果你有一个账号并且积分比较高,在很多国外公司的面试中甚至都是有加分的),基本上这一阶段你能遇到的所有问题在这里都能找到不错的答案。
“作为新手,从长远角度看”从长远角度看,当然是熟练掌握C、Objective-C、Swift并了解C++与Objective-C混编了。然后再说如何学习,我还是建议你先学习Objective-C。倒也没有什么特别有说服力的原因,只是感觉连面试现在还是会问到上古时期MRC手动管理内存以及指针相关的一些话题,直接奔着屏蔽了指针又是ARC又是结合了一群语言特色的Swift会缺少很多对于计算机专业学僧来说比较重要的过程吧。有C语言基础大概两个星期Objective-C语法和大部分语言特性就能掌握了,Objective-C也是我第一个OOP语言,当时也没做过项目,也不懂设计模式,就照着斯坦福那个课程和一本开发指南看着写了。你有一点基础应该不会太费力,我当时什么都不会,接触这些东西转换思维还是挺费劲的。印象中斯坦福那个和大部分国内书籍套路也差不多,也就是一些编程范式,然后讲点语言,然后常用控件,然后一些高级控件,然后一些框架,最后一些高级特性和框架好像是。当时我用的关东升的iOS开发指南,挺厚的一本书,除了Core Animation和Core Graphics和Sprite Kit这三个框架似乎基本都覆盖到了,后面这三个是写一些特效或者做游戏用的,那个应用开发书籍比较基本,没提及。不过我觉得看完那本书把最后带的实战项目做完基本也就算入门了。如果那时候视频也同步看完的话,斯坦福那个视频是提到CA和CG框架并且有Demo 的。你说四个月左右做出点小成果,差不多就是这个学习时间吧。基本就是语言、基本编程范式、常用设计模式、各种常用控件详解、小项目、SDK的其他常用框架、软件工程科普、项目实战,差不多都是这套路。然后你可以看看这个问题..去年暑假学到上述差不多程度提的这个问题。然后就是边做项目边学各种框架了,Objective-C的一些动态特性和一些多线程编程技巧,Effective系列就可以看看了。那时候用的就是iOSX Programming CookBook了,基本就是讲框架,给Demo,敲代码,然后觉得对这个框架有更高的使用需求就直接去看官方文档,里面说的更细。之后,哪天你心情好了,掏出Swift看看,一个星期差不多就能搞定..
提这个问题刚好一年了,知乎首答就来回答自己的问题吧。首先很感谢当时回答这些问题的人们,绝大多数我都认真看了,也从中选择了最适合自己的道路。于是我就把我这一年新鲜出炉的学习以及开发经历分享一下,希望后来者能从中发现自己所需要的东西以参考。对于语言,我最终选择了Objective-C。至于原因,前面回答的人已经说的比较清楚了,大抵是之前有很多app仍是以Objective-C写的,Swift教程尚不多,等等。不过,现在随着Swift 2.0的出现以及开源,更多Swift教程、库以及demo的出现,以后学习Swift也会变的越来越重要以及方便。
对于学习路线,我主要是依据
的答案来规划的。我读了以及Apple 的官方教程,后来又看了(其实个人觉得,若要读这本或者这类书,Apple的官方教程也许可以省去不看)。虽然在读的过程中有一些地方不是很懂,例如有关delegate、内存管理等等,不过这些有的不是很重要,有的只需会用就可以了,不用理解得很周到。 我大概学了两个月吧,然后在没有过多练手的情况下,和一个好友开始了一个app的开发,他负责安卓,我负责iOS。中间遇到了一些波折吧,不过最终在5月初在App Store上线了。与题无关,不表。然后说一下我的建议吧。首先就是一定要在学习的时候,把demo的代码好好看,最好能够敲一遍。这样在以后自己写app,遇到问题的时候,就会想到「诶以前在书上看到过这样一个method或者一种solution」,也许就可以解决问题。同时关注一些好的微信公众账号也是比较好的提升方法,有时候发的文章可能就可以解决你的一些问题。最后从我的角度分析一下我认为最重要,也是给我感触最深的一点。就是对于初学者,刚学完就去做一个相对比较大的app的利与弊。先说弊。其实一开始确立想法的时候我特别踌躇满志,刚开始develop那一阵也特别有激情,但是越写到后来就越会发现,其实有一些东西并不在我的能力范围之内。一些小的常见的error不会解决,小块的功能不会实现,这些都可以Google。但是当上升到比较overall的一些东西的时候,比如线程,比如coding style(不光是代码的外观与格式,包括什么时候该抽出来一个类,什么时候该抽出来一个方法等等),比如和网络有关的东西,真的会有一种无力感(答主之前并没有相关知识)。虽然这些最终可能都能解决,但是也会带来一些问题比如效率比较低,可扩展性不是很好,等等。至于利,我觉得最大的就是,自己一个人完成一个大项目,会对iOS app development的各个点(从Foundation、UIKit各个类的方法,到Core Graphics的绘制,到App Store的submission)基本上能有一个全面的不浅的了解。而根据app的不同,又会在某些特定的点上有较深入的研究。那么从这时候起,就可以读一些进阶的书或博客了。就是这样,诸君自己选择吧。
叫人先学Swift的人都不负责任~!原因:Swift比OC复杂很多。作为一门新的刚出来的语言,资料不多,语法用法各方面与C有很大的不同,你会发现碰到的问题在网上都没有办法找到答案,而且Swift刚刚推出,肯定会有一些没有填平的坑,比如:Apple也承认现在Swift中的类成员无法私友化是个问题,该功能还在开发中,预计在下一个版本会放出来。所以Swift的复杂程度加上Swift是一门未完成的语言就决定了现在进行学习投资是不划算的。不管你学OC还是学Swift,Cocoa框架你是跑不掉。Cocoa框架最初是基于OC来开发,虽然Swift中对OC的消息做了兼容,但是使用先学习OC来学习Cocoa框架的办法无疑是最稳定,最快捷,你将会更加快速的去理解很多Cocoa框架的设计。Xcode6 Beta2作为Swift的IDE仍然不完善。其实我想说,Beta2版本的Xcode的Swift部分基本上处于不可用的状态,代码提示基本上没有。只有一些基础方法的提示,而不会像Objective-C那样友好。按照Apple的尿性,估计可能要一两个正式版本后Swift的代码提示才会基本可用。====无敌分隔线====所以,现在阶段,如果想要学习IOS开发,建议先打好C的基础,然后再学OC,最后再看Swift,跳过前面两样直接学习Swift都是不稳妥的。
长远的话这个问题不用问,学哪个都一样。真的,当你熟练掌握2-3门语言再学新语言那是分分钟的事,不要和我说你等不到熟练掌握2-3门语言,因为你没掌握所以一直把时间浪费在在纠结这些问题上,至于语言的差异及好坏对个人发展选择的影响,在你没有熟练掌握之前你是不会遇到这些问题的…我擦,没有看见是一年前的问题…居然还推送给了我…看题主已经有了经验,继续努力吧!
接触过swift之后你会发现一切回到原点…毕竟cocoa是基于oc的…作为过来人建议还是用oc打基础 当你对oc驾轻就熟之后再学swift感觉真是爽爆了…所以要学就直接上手个挑战大点的oc吧!!c的话感觉ios开发倒是有点无关紧要 不过假如你是编程纯小白的话…肯定要用c入门 就像我们要学会跑必须先学会走一个道理…
Swift 是一门简洁易读的语言, 对于初学者来说是完美的选择,做个小程序玩玩什么的挺好的。但如果想快速的开发复杂的功能较多的软件,想避开 Objective-C 是几乎不可能的,举个最简单的例子,大多数成熟的 template, library, SDKs 几乎都找不到Swift的影子。但 Swift 的发展速度也是其最大的优势,仅仅一年之内,Swift 的资源量让其他新语言望尘莫及,希望随着时间的推移,Swift 最终会取代 Objective-C,不过苹果好像并没有这样的想法,不过当 Swift 强大到一定程度时,开发者们一定会有动作的。Accidental Tech Podcast #122:这个分析的很客观,而且详细。
【我希望能在四个月左右的时间中做出点小成果。】如果题主你觉得这样就算长远的话,那我还是建议你学swift,毕竟比objc好用很多,尽管写起复杂的东西来都一样难,反正这些东西也不算小成果。
其实长远来看的话
建议两门语言都学习有C语言基础就先学OC
学完OC再学习swift时间有限的话
建议直接看视频教程,比如《》
已有帐号?
无法登录?
社交帐号登录1、SingleViewApplication项目,拖一个pickerView控件、一个label和一个button,并且为pickerView和label定义输出口,为button添加事件触发。
2、viewController.h以及.m的代码如下,这里我们吧属性和事件触发声明都放在了头文件中,并且新建三个属性,我们这里用省份和城市来展现普通选择器,所以这三个属性分别是全部数据、当前省的数据和当前市的数据,因为之后还需要用到数据源的链接,所以还声明了委托协议和数据源协议:
ViewController.h
TestProject
Created by 侯家奇 on 16/8/17.
Copyright © 2016年 侯家奇. All rights reserved.
#import &UIKit/UIKit.h&
@interface ViewController : UIViewController &UIPickerViewDelegate, UIPickerViewDataSource&
@property (nonatomic, strong) NSDictionary *pickerD
//保存全部数据
@property (nonatomic, strong) NSArray *pickerProvincesD
//当前省的数据
@property (nonatomic, strong) NSArray *pickerCitiesD
//当前市的数据
@property (weak, nonatomic) IBOutlet UIPickerView *pickerV
@property (weak, nonatomic) IBOutlet UILabel *
- (IBAction)onclick:(id)
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerV
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)
ViewController.m
TestProject
Created by 侯家奇 on 16/8/17.
Copyright © 2016年 侯家奇. All rights reserved.
#import &ViewController.h&
@interface ViewController ()
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSBundle *bundle = [NSBundle mainBundle];
NSString *plistPath = [bundle pathForResource:@&provinces_cities& ofType:@&plist&];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
self.pickerData =
self.pickerProvincesData = [self.pickerData allKeys];
NSString *selectedProvince = [self.pickerProvincesData objectAtIndex:0];
self.pickerCitiesData = [self.pickerData objectForKey:selectedProvince];
self.pickerView.dataSource =
self.pickerView.delegate =
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
- (IBAction)onclick:(id)sender {
NSInteger row1 = [self.pickerView selectedRowInComponent:0];
NSInteger row2 = [self.pickerView selectedRowInComponent:1];
NSString *selected1 = [self.pickerProvincesData objectAtIndex:row1];
NSString *selected2 = [self.pickerCitiesData objectAtIndex:row2];
NSString *title = [[NSString alloc] initWithFormat:@&%@, %@&, selected1, selected2];
self.label.text =
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
if (component == 0) {
return [self.pickerProvincesData count];
return [self.pickerCitiesData count];
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
if (component == 0) {
return [self.pickerProvincesData objectAtIndex:row];
return [self.pickerCitiesData objectAtIndex:row];
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
if (component == 0) {
NSString *selectedProvince = [self.pickerProvincesData objectAtIndex:row];
NSArray *array = [self.pickerData objectForKey:selectedProvince];
self.pickerCitiesData =
[self.pickerView reloadComponent:1];
关于数据源协议和委托协议,这里重写了四个方法,前两个是数据源协议,后两个数委托协议:
numberOfComponentsInPickerView:选择器中拨盘的数目。
pickerView:numberOfRowsInComponent:选择器中某个拨盘的行数。
pickerView:titleForRow:forComponent:为选择器中某个拨盘的行数提供显示数据。
pickerView:didSelectRow:inComponent:选中选择器的某个拨盘中的某行时调用。
4、这里我们需要一个资源文件:provinces_cities.plist可以直接用xcode新建,然后省份定义成array,就可以了,自己添加一些选项,目录结构如下:
关于数据源协议和委托协议的链接,可以通过代码的形式,也可以通过InterfaceBuilder工具,以上的代码中定义了连接
self.pickerView.dataSource =
self.pickerView.delegate =
分别拖动即可:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:59820次
积分:2182
积分:2182
排名:第13219名
原创:150篇
转载:64篇
(1)(3)(25)(15)(6)(11)(12)(14)(4)(1)(9)(12)(18)(22)(42)(14)(2)(12)

我要回帖

更多关于 android判断国内国外 的文章

 

随机推荐