学习 ios ( Swift ) 开发一个多礼拜的心得:入门到放弃

2019-07-31 09:41:08 +08:00
 xiangyuecn

学了一个多礼拜,看了 2 本书,毛都没写出来😂

主要是新入门,基础的功能都要从 0 开始写,够折腾的。不过还好蛮多 java 代码改改就能移植到 swift 里面。

遇到的几个问题吐槽一下:

  1. 粗略看了两本 swift ios app 的书,里面的内容感觉:原来写成这样的层次也可以出书(捂脸 。看完了官方的The Swift Programming Language LANGUAGE GUIDE,稍微浅显易懂了点,算有点价值吧

  2. 没有抽象类这个玩意,不知道怎么写子类必须实现某些方法,现在用一个父类加一个 protocol 接口组合起来当做抽象类,写着别扭。

  3. 遇到问题搜 10 篇文章,有 6 篇是抄的还不带格式,另外 3 篇在讲故事,剩 1 篇终于把问题解决了。

  4. 至今没找到怎么把任意对象转成字符串,比如:obj:AnyObject, 好希望有:obj.toString(),现在用的"\(obj)"有点丑。

  5. 一个方法注释里面明明说会引发异常,但方法并没有用 throws 把异常抛出来也没有其他措施,强制用 try 捕获会显示黄色警告,折磨死人。参考:FileHandle.write 往文件写数据这个方法,没任何返回值也没有抛任何异常,但注释说会引发异常,怕怕。也许是使用姿势不对😂

  6. xcode 项目那个文件虽然是文本,但几乎不是人工能编写的(有点反人类)。同样是新入门,Android Studio 的项目管理就没有这么难产。

慢慢积累吧,还好 swift 语法还算正常不用去写 oc ( oc 看起来像写甲骨文,学不动)。入门到放弃!但真放弃却是不可能的,慢慢磨吧。有大佬指点迷津就更好了😊

16167 次点击
所在节点    程序员
116 条回复
manwei6341
2019-07-31 10:01:08 +08:00
玩不起,就别玩了。。其实现在好很多了。from version 1.2 to 5.0 的路过。
CoCoMcRee
2019-07-31 10:05:24 +08:00
很好奇, 为啥想要入 iOS 开发这个坑呢
iOS 开发现在工作都找不到呢
Lin0936
2019-07-31 10:07:50 +08:00
Swift 还行吧,也是上月底开始学的,之前一直开发 Android App,一个月撸了个 iOS 版,昨天弄去审核了。
swift 有些写法还挺舒服,但是大多数还是感觉别扭。
misaka19000
2019-07-31 10:08:25 +08:00
flutter
34D
2019-07-31 10:09:30 +08:00
@CoCoMcRee 张口就来?你说的那些是什么培训出来的 iOS 开发。我所在的公司,和很多同事的公司都是招 iOS 开发招不到,不要把自己能力问题归结为社会现象。
jewer3330
2019-07-31 10:09:59 +08:00
php 天下第一
xiangyuecn
2019-07-31 10:12:10 +08:00
@manwei6341 膜拜大佬,能不能指点一下,任意对象转成字符串怎么写,比如一个方法传入任意对象(主要的还是针对传入的是 string、数字等肉眼可见(😁先这样描述吧)的对象)。还有对可能抛出异常的代码但没有 throws 的,如何去捕获抑制住这种异常?
Carmine
2019-07-31 10:12:55 +08:00
现在入坑时机很好啊,ABI 稳定,容易学很多了~
好好学,你会发现 iOS 滴工作真的不好找😭
liuyx7894
2019-07-31 10:13:25 +08:00
一看就是没写过 js python 的....就用过 java?,你玩玩 js 再回来写 swift 你就会爽到
xiangyuecn
2019-07-31 10:15:07 +08:00
@CoCoMcRee 要写 app 啊,不然哪有精力去学这个,目前为止算是遇上的最难学的一个了,并非以找工作为目的,保住当前工作就阿弥陀佛了😂
wbing
2019-07-31 10:17:46 +08:00
好巧,我也是最近工作有个新需求要开发个 ios 客户端,也是从上周到现在都在学 swift。
头两天也是一样查不少资料,最后是看这个系列文章
https://www.appcoda.com.tw/hello-world-app-swift/
还有这个视频入门的
https://m.youtube.com/watch?t=10105s&v=09TeUXjzpKs

现在用的挺顺手的了,比 c++容易
hoyixi
2019-07-31 10:19:07 +08:00
其实这是规律,书,还有市面上的收费课程,不说那些抄来抄去的,即使是用心做的,基本都是面向小白的,也就是领你进门,混个脸熟,知道个大概。

接下来还得自己看文档,或者多看好的开源库的代码,或者一些比较稀有的好的博客文章的分享。然后就是自己动手实战~
xiangyuecn
2019-07-31 10:19:39 +08:00
@liuyx7894 #9 哈哈,反了反了,我最拿手的还是 js,Android、IOS 写布局什么的都太难写了,css 简单任性粗暴历史悠久,一直有个疑问,Android 布局里面有很多属性看起来和 css 很像,是不是借鉴的。
zhangchioulin
2019-07-31 10:20:07 +08:00
我有一些别的语言的经验 Objc 和 Python,一礼拜就基本上手了(都是看官方文档),还顺便写了个工具。。
xiangyuecn
2019-07-31 10:21:58 +08:00
@jewer3330 #6 忘了还有 php,比 swift 还难写,语法和 oc 倒是有些地方很相像,难写,还没入门就放弃了
xiangyuecn
2019-07-31 10:23:37 +08:00
@wbing #11 感谢,我去学习一下
finab
2019-07-31 10:25:48 +08:00
Swift 最起码比 Java 好用太多了吧😀,你 java 都能写的话

2.
你可以直接使用 protocol, 如果有公共方法实现即可,不用用父类继承
extension protocolName {
}

4.
extension NSObject {
func toString() {
return "\(self)"
}
}
xiangyuecn
2019-07-31 10:26:52 +08:00
@hoyixi @zhangchioulin 嗯嗯,学了一下基本语法,上手写代码还是挺快的,但具体到 ios 里面的功能调用,就要慢慢摸索翻文档研究
finab
2019-07-31 10:28:10 +08:00
4 手写忘了写方法返回值
extension NSObject {
func toString() -> String{
return "\(self)"
}

var str:String {
get {
return "\(self)"
}
}
}
xiangyuecn
2019-07-31 10:30:05 +08:00
@finab #17 19 学习了,还好继承的写法还没写几个类,待会全部改成这个写法😁

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/587738

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX