仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1571|回复: 13
打印 上一主题 下一主题

[学习教程] IOS设计iOS 8新特征先容仓酷云

[复制链接]
莫相离 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:27:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
有一些像NSCopying的接口(经@李禹龙提醒应该叫协议)不是特别用到开始不用了解NSObject创建对象的时候用+(id)alloc方法创建后需要init方法初始化任意往问任何人,他们城市告知你WWDC2014是最近几年来最为冲动的回想。全部年夜会没有公布任何新硬件,它是一次史无前例的软件开辟者盛宴!
仅是iOS8和OSXYosemite的公布就可以让2014成为苹果平台划时期的一年,加上Extension,Continuity,SpriteKit改善,iOSSceneKit,Metal,HealthKit,LocalAuthentication和全新的照片框架。更不必说,Xcode和InterfaceBuilder的分明变动,从头计划的iTunesConnect,TestFlight,溃散呈报和CloudKit。固然另有ohyeah-Swift。
更棒的是?苹果抓紧了她的保密协议,也就是说我们能够如今就公然会商这些极新的玩具!
这周,我们将扒开iOS8的云雾,切磋一些一切人都应当晓得新API。
从如今入手下手NSHipster讲次要利用Swift写样历代吗。炎天停止之前,我们但愿能将全体的现存代码转换为Swift,而且供应能够切换言语的选项。
NSProcessInfo-isOperatingSystemAtLeastVersion

健忘[[UIDevicecurrentDevice]systemVersion]和NSFoundationVersionNumber吧,如今能够用NSProcessInfo-isOperatingSystemAtLeastVersion来断定体系版本。
  1. importFoundationletyosemite=NSOperatingSystemVersion(majorVersion:10,minorVersion:10,patchVersion:0)NSProcessInfo().isOperatingSystemAtLeastVersion(yosemite)//false
复制代码
值得注重的是,在做兼容性测试的时分仍是应当利用SomeClass.class或respondsToSelector:。Swift和C中的编译器宏能够用来依据分歧天生设置和方针来选择代码。
新的NSFormatter子类

Foundation中严峻缺掉的一项功效就是不克不及处置分量和长度单元转换。在iOS8和OSXYosemite中,引进了三个新类NSEnergyFormatter,NSMassFormatter和NSLengthFormatter来填补这一缺掉。
这使得NSFormatter子类的数目翻了一倍,之前只要NSNumberFormatter,NSDateFormatter和NSByteCountFormatter。
固然这些都是Foundation的子类,可是它们次要都是在HealthKit傍边利用。
NSEnergyFormatter

NSEnergyFormatter利用焦作为能量的原始单元,当处置安康信息时,则利用卡.
  1. letenergyFormatter=NSEnergyFormatter()energyFormatter.forFoodEnergyUse=trueletjoules=10_000.0println(energyFormatter.stringFromJoules(joules))//"2.39Cal"
复制代码
NSMassFormatter

固然质量是物资存在的基础单元,在HealthKit中,它次要指的是身材分量.
  1. letmassFormatter=NSMassFormatter()letkilograms=60.0println(massFormatter.stringFromKilograms(kilograms))//"132lb"
复制代码
NSLengthFormatter

NSFormatter的最初一个新子类是NSLengthFormatter.我们能够把它设想为MKDistanceFormatter的增强版。
  1. letlengthFormatter=NSLengthFormatter()letmeters=5_000.0println(lengthFormatter.stringFromMeters(meters))//"3.107mi"
复制代码
CMPedometer

沿着iOS8的安康线路,CMStepCounter被从头计划了.CMPedometer作为它的改进版本不但能够立即猎取团圆的点数据,而且能够同时跟踪脚步和间隔,乃至盘算统共爬了几级楼梯。
M7芯片真是功效壮大.
  1. importCoreMotionletlengthFormatter=NSLengthFormatter()letpedometer=CMPedometer()pedometer.startPedometerUpdatesFromDate(NSDate(),withHandler:{data,errorinif!error{println("StepsTaken:(data.numberOfSteps)")letdistance=data.distance.doubleValueprintln("Distance:(lengthFormatter.stringFromMeters(distance))")lettime=data.endDate.timeIntervalSinceDate(data.startDate)letspeed=distance/timeprintln("Speed:(lengthFormatter.stringFromMeters(speed))/s")}})
复制代码
CMAltimeter

在撑持的设备上,CMAltimeter可让CMPedometer的floorsAscended,floorsDescended数据加倍精准:
  1. importCoreMotionletaltimeter=CMAltimeter()ifCMAltimeter.isRelativeAltitudeAvailable(){altimeter.startRelativeAltitudeUpdatesToQueue(NSOperationQueue.mainQueue(),withHandler:{data,errorinif!error{println("RelativeAltitude:(data.relativeAltitude)")}})}
复制代码
CLFloor

CLFloor的引进展现了苹果进军室内导航的雄伟企图,楼层信息将饰演侧重要的脚色。
  1. importCoreLocationclassLocationManagerDelegate:NSObject,CLLocationManagerDelegate{funclocationManager(manager:CLLocationManager!,didUpdateLocationslocations:AnyObject[]!){letlocation:CLLocation?=locations[0]as?CLLocationifletfloor:CLFloor?=location?.floor{println("CurrentFloor:(floor?.level)")}}}letmanager=CLLocationManager()manager.delegate=LocationManagerDelegate()manager.startUpdatingLocation()
复制代码
HKStatistics

作为一个框架,HealthKit包括着大批的子类和常量。要想全体了解,HKStatistics是一个很好的入手下手。
HealthKit办理着一切的心理信息,比方:心率,卡路里摄取量,血氧等等,而且经由过程一致的API聚合在一同。
上面这个例子演示了怎样从一天的一连数据中,发掘和猎取独自的数据:
  1. importHealthKitletcollection:HKStatisticsCollection?=...letstatistics:HKStatistics?=collection!.statisticsForDate(NSDate())foritem:AnyObjectinstatistics!.sources{ifletsource=itemas?HKSource{ifletquantity:HKQuantity=statistics!.sumQuantityForSource(source){ifquantity.isCompatibleWithUnit(HKUnit.gramUnitWithMetricPrefix(.Kilo)){letmassFormatter=NSMassFormatter()letkilograms=quantity.doubleValueForUnit(HKUnit.gramUnitWithMetricPrefix(.Kilo))println(massFormatter.stringFromKilograms(kilograms))}ifquantity.isCompatibleWithUnit(HKUnit.meterUnit()){letlengthFormatter=NSLengthFormatter()letmeters=quantity.doubleValueForUnit(HKUnit.meterUnit())println(lengthFormatter.stringFromMeters(meters))}ifquantity.isCompatibleWithUnit(HKUnit.jouleUnit()){letenergyFormatter=NSEnergyFormatter()letjoules=quantity.doubleValueForUnit(HKUnit.jouleUnit())println(energyFormatter.stringFromJoules(joules))}}}}
复制代码
NSHipster将会在将来切磋更多的HealthKit,敬请存眷!
NSStream+getStreamsToHostWithName

在很多方面,WWDC2014也是苹果查漏补遗的一年,好比给NSStream增加了新的initializer(不再用挪用CFStreamCreatePairWithSocketToHost了),这就是:+[NSStreamgetStreamsToHostWithName:port:inputStream:outputStream:]
  1. varinputStream:NSInputStream?varoutputStream:NSOutputStream?NSStream.getStreamsToHostWithName(hostname:"nshipster.com",port:5432,inputStream:&inputStream,outputStream:&outputStream)
复制代码
NSString-localizedCaseInsensitiveContainsString

这又是一个NSString小而有用的补葺:
[code]letstring:NSString="Caf
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-21 07:23:11 来自手机 | 只看该作者
iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。
admin 该用户已被删除
板凳
发表于 2015-1-30 11:04:15 来自手机 | 只看该作者
其实在培训的过程中,学习到最多的就是查资料的方式,当时感觉老师好坑,什么都不告诉我们,让我们自己去查,但是现在觉得还是要自己解决问题,这样才能理解的更加深入。
若天明 该用户已被删除
地板
发表于 2015-2-3 12:48:50 | 只看该作者
以上可以同时进行,学习过程中尽量不要纠结细节和底层,要知道ios是封闭的、OC是高级语言,我们不可能过多地去了解它的原理,至少在新手阶段没有必要。用迭代的方式更新你的知识,而不是死抠一个知识点。
深爱那片海 该用户已被删除
5#
发表于 2015-2-7 03:46:12 | 只看该作者
重要的是,放眼全球也的确找不到第二个如苹果iOS平台这样健壮、完整、先进而且为开发者带来真实收益的开发平台来。
海妖 该用户已被删除
6#
发表于 2015-2-7 10:06:55 | 只看该作者
在百度搜索你想要了解的类名(苹果的cocoa和cocoatouch框架的类名很有特点很容易搜到,前缀都是NS or UI),看别人写的博客详解
山那边是海 该用户已被删除
7#
发表于 2015-2-11 19:12:46 | 只看该作者
才在自己的Windows电脑上安装配置成功了一个完美的Mac OS X Lion(10.7.4)系统,而且下载了Xcode4.5的最新版本。虽然不能实机调试,但是作为iOS开发学习已经非常完美了。
再见西城 该用户已被删除
8#
发表于 2015-2-21 13:07:35 | 只看该作者
看完这个你就可以有多种选择来踏入做应用的阶段
再现理想 该用户已被删除
9#
发表于 2015-2-22 14:50:52 | 只看该作者
因为我们老师也是自学的,给我们讲课说的最多的就是百度,谷歌,查文档。
第二个灵魂 该用户已被删除
10#
发表于 2015-2-24 02:40:24 | 只看该作者
开始的时候甚至想放弃,不过想想自己的未来,只能咬牙坚持,课下就不停的缠着老师。放学就补基础,这些基础的东西没有速成的,只有刻苦努力。我是后来发现的,转变自己的心态,不要读书看资料当成一种痛苦
柔情似水 该用户已被删除
11#
发表于 2015-3-4 18:16:50 | 只看该作者
因为我们老师也是自学的,给我们讲课说的最多的就是百度,谷歌,查文档。
小女巫 该用户已被删除
12#
发表于 2015-3-11 20:35:07 | 只看该作者
才在自己的Windows电脑上安装配置成功了一个完美的Mac OS X Lion(10.7.4)系统,而且下载了Xcode4.5的最新版本。虽然不能实机调试,但是作为iOS开发学习已经非常完美了。
13#
发表于 2015-3-19 11:39:34 | 只看该作者
培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。
透明 该用户已被删除
14#
发表于 2015-3-27 20:07:30 | 只看该作者
还有开发工具是用Xcode,是在Mac系统的,你多摸索一下就可以开发简单的应用了,建议你买一本iphone开发秘籍第二版看看,希望可以帮到你,谢谢。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-6 21:10

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表