在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、假设我是个刚入门的iOS开发人员,选swift学习呢,还是选objective-c学习,还是两个都学?这个能够依据两种情况来决定:1、我想进入公司担任iOS开发的职位 2、我仅仅想做个独立开发人员,自己开发app公布。 第一种情况的话,你必须要学objective-c,如今市面上绝大部分的app都是用oc开发的,从oc到swift过渡是要非常长一段时间的。 当然swift最好也同一时候要学会。 另外一种情况:你不考虑兼容性(iOS7下面版本号,后面会提到)的情况下,全然能够仅仅学习swift。只是objective-c第三方开源库非常的丰富,有时间,不妨要学习了解oc。 随着时间的推移,肯定是转向swift的。 2、 我有多年的iOS Objective-C的开发经验,相应swift,我还是新手吗?在我看来,你不是新手了。由于你非常熟悉Xcode和Cocoa/Cocoa Touch API 。熟悉和学习这些API和工具过程比学Swift花的时间更长。 仅仅要花点时间熟悉使用Swift语法, 就能非常快的在项目中使用swift了。 3、iOS 8和OS X Yosemite的应用程序仅仅使用Swift语言么?不是。Swift语言能与Objective-C流畅地交互,反之亦然。苹果并没有全然将Objective-C 的API转成Swift,但你仍能够在Swift代码中仍使用这些API。时间会证明,非常多年内iOS和OS X商店在採用Swift语言的同一时候仍会继续依赖Objective-C语言。4、Swift语言适用于iOS的其它版本号和OS X系统么?是的!Xcode 6能够为iOS 7及以上和OS X10.9及以上的系统版本号编译Swift代码。事实上,如今你从App Store下载的WWDC app就是苹果用Swift语言编写的。 可是,苹果如今还不同意使用Xcode Beta版本号创建的应用程序提交到App Store。因此,你须要等到Xcode 6正式版公布才干在App Store中上传Swift编写的应用程序。 5、Swift语言是代替Objective-C,还是仅仅是对Objective-C的补充?引用苹果官方的一句话,“Objective-C不会消失,Swift和Objective-C可同一时候用于Cocoa和CocoaTouch开发。”因此,你仍然能够继续使用Objective-C。只是,苹果似乎鼓舞你使用Swift进行新的开发,而不是希望你重写全部的Objective-C代码。我们推測苹果在未来的框架和API开发中将会逐渐降低使用Objective-C语言,甚至有一天会弃用Objective-C,所以早作准备吧! 6、playground是什么?參考11条,你就知道怎么创建和执行playground了。 7、怎样学习Swift?苹果官方的教程 Swift Programming book 官方教程的中文翻译:http://numbbbbb.gitbooks.io/-the-swift-programming-language-/ 这是我见过翻译最快的教程!翻译的又快又好。 8、有没有在Swift语言能够实现,但Objective-C下却不能实现的事情?或者反过来说。想了解很多其它细节,请阅读官方文档: Using Swift with Cocoa and Objective-C Guide 也能够看这里有: 中文版 9、有没有Swift不能用的API?在写这篇文章时,我还没发现有。10、Playground中,println()结果在哪里?假设你打开了playground,还是看不见结果,那就执行那么的操作:打开Assistant Editor才干看到控制台输出。步骤:View > Assistant Editor > Show Assistant Editor, 或者使用快捷键: Option + Command + Return. 11、怎样在打开Playgrounds和看到那些非常酷的值的图形?两种方式打开Playgrounds:新建Playgrounds项目或在已有的项目里新建文件,选择playgrounds文件。 咱们看一段简单的代码,一个for循环, for x in 1..10 { x }下面是相应的playgrounds的截图 12、你怎样执行REPL?在终端执行下面命令,告诉它使用Xcode 6的命令行工具。 sudo xcode-select -s /Applications/Xcode6-Beta.app/Contents/Developer/ 然后执行下面代码開始Swift REPL。 xcrun swift 假设准备退出,你能够键入:exit或者:quit。你也能够使用CTRL+D快捷键。 12、你能用Swift来调用自己的Objective-C代码或者第三方库吗?假设能,要怎么做呢?能够!当你往Xcode项目里加入第一个.swift文件时,系统会提示你让Xcode创建一个桥接头文件(bridging header file)。你能够在这个头文件里导入你希望可见于Swift代码的Objective-C头文件。然后,全部的类无需导入都可为Swift所用,你能够使用和系统类同样的Swift语法来使用自己定义Objective-C代码。 13、数组能包不同的类型呢?在Swift中,强烈建议使用仅仅包括一种类型的强类型数组,比方: var goodArray: String[] = [ "foo" , "bar" ] 从技术上讲,你能够创建包括多个类型对象的数组。但最好问问自己为什么这么做。多类型数组: var brokenArray: AnyObject[] = [ "foo" , 1, 12.23, true ] 14、字典(dictionary)和原来一样吗?字典也是强类型(strongly typed)的吗?是的,只是你依旧能够用AnyObject来解决。对于字典来说,它里边全部的值不是同一个类型也讲得通。下面是用字典表示的从server端返回的一个JSON响应: 来看一个serverJSON响应的样例,用字典来表示: var employee : Dictionary<String, AnyObject> = [ "FirstName" : "Larry" , "LastName" : "Rodgers" , "Salary" : 65_000.00] 这个字典有两个String类型的键和一个Double值类型的键。直接是字典也是能够的,只是你最好创建一级类模型对象来表示这些数据,而不是依赖字典。 15、Swift怎样和Grand Central Dispatch一起使用?同样的方法,你能够像在Objective-C中那样使用C API.在处理并发性时,你也能够使用苹果高级NSOperationQueue。 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), { println( "test" ) }); 16、Objective-C中的国际化宏命令呢?相似Objective-C中的NSLocalizedString, 你能够在Swift中使用NSLocalizedString(key:tableName:bundle:value:comment:) 方法为国际化做准备 。tableName、bundle以及value arguments都有默认值,所以假设你正使用NSLocalizedString,你能够编写例如以下代码:
|
请发表评论