学了一个多礼拜,看了 2 本书,毛都没写出来😂
主要是新入门,基础的功能都要从 0 开始写,够折腾的。不过还好蛮多 java 代码改改就能移植到 swift 里面。
遇到的几个问题吐槽一下:
粗略看了两本 swift ios app 的书,里面的内容感觉:原来写成这样的层次也可以出书(捂脸 。看完了官方的The Swift Programming Language
LANGUAGE GUIDE,稍微浅显易懂了点,算有点价值吧
没有抽象类这个玩意,不知道怎么写子类必须实现某些方法,现在用一个父类加一个 protocol 接口组合起来当做抽象类,写着别扭。
遇到问题搜 10 篇文章,有 6 篇是抄的还不带格式,另外 3 篇在讲故事,剩 1 篇终于把问题解决了。
至今没找到怎么把任意对象转成字符串,比如:obj:AnyObject, 好希望有:obj.toString(),现在用的"\(obj)"
有点丑。
一个方法注释里面明明说会引发异常,但方法并没有用 throws 把异常抛出来也没有其他措施,强制用 try 捕获会显示黄色警告,折磨死人。参考:FileHandle.write 往文件写数据这个方法,没任何返回值也没有抛任何异常,但注释说会引发异常,怕怕。也许是使用姿势不对😂
xcode 项目那个文件虽然是文本,但几乎不是人工能编写的(有点反人类)。同样是新入门,Android Studio 的项目管理就没有这么难产。
慢慢积累吧,还好 swift 语法还算正常不用去写 oc ( oc 看起来像写甲骨文,学不动)。入门到放弃!但真放弃却是不可能的,慢慢磨吧。有大佬指点迷津就更好了😊
1
manwei6341 2019-07-31 10:01:08 +08:00
玩不起,就别玩了。。其实现在好很多了。from version 1.2 to 5.0 的路过。
|
2
CoCoMcRee 2019-07-31 10:05:24 +08:00
很好奇, 为啥想要入 iOS 开发这个坑呢
iOS 开发现在工作都找不到呢 |
3
Lin0936 2019-07-31 10:07:50 +08:00
Swift 还行吧,也是上月底开始学的,之前一直开发 Android App,一个月撸了个 iOS 版,昨天弄去审核了。
swift 有些写法还挺舒服,但是大多数还是感觉别扭。 |
4
misaka19000 2019-07-31 10:08:25 +08:00
flutter
|
5
34D 2019-07-31 10:09:30 +08:00 1
@CoCoMcRee 张口就来?你说的那些是什么培训出来的 iOS 开发。我所在的公司,和很多同事的公司都是招 iOS 开发招不到,不要把自己能力问题归结为社会现象。
|
6
jewer3330 2019-07-31 10:09:59 +08:00
php 天下第一
|
7
xiangyuecn OP @manwei6341 膜拜大佬,能不能指点一下,任意对象转成字符串怎么写,比如一个方法传入任意对象(主要的还是针对传入的是 string、数字等肉眼可见(😁先这样描述吧)的对象)。还有对可能抛出异常的代码但没有 throws 的,如何去捕获抑制住这种异常?
|
8
Carmine 2019-07-31 10:12:55 +08:00 1
现在入坑时机很好啊,ABI 稳定,容易学很多了~
好好学,你会发现 iOS 滴工作真的不好找😭 |
9
liuyx7894 2019-07-31 10:13:25 +08:00
一看就是没写过 js python 的....就用过 java?,你玩玩 js 再回来写 swift 你就会爽到
|
10
xiangyuecn OP @CoCoMcRee 要写 app 啊,不然哪有精力去学这个,目前为止算是遇上的最难学的一个了,并非以找工作为目的,保住当前工作就阿弥陀佛了😂
|
11
wbing 2019-07-31 10:17:46 +08:00 via iPhone 8
好巧,我也是最近工作有个新需求要开发个 ios 客户端,也是从上周到现在都在学 swift。
头两天也是一样查不少资料,最后是看这个系列文章 https://www.appcoda.com.tw/hello-world-app-swift/ 还有这个视频入门的 https://m.youtube.com/watch?t=10105s&v=09TeUXjzpKs 现在用的挺顺手的了,比 c++容易 |
12
hoyixi 2019-07-31 10:19:07 +08:00 1
其实这是规律,书,还有市面上的收费课程,不说那些抄来抄去的,即使是用心做的,基本都是面向小白的,也就是领你进门,混个脸熟,知道个大概。
接下来还得自己看文档,或者多看好的开源库的代码,或者一些比较稀有的好的博客文章的分享。然后就是自己动手实战~ |
13
xiangyuecn OP @liuyx7894 #9 哈哈,反了反了,我最拿手的还是 js,Android、IOS 写布局什么的都太难写了,css 简单任性粗暴历史悠久,一直有个疑问,Android 布局里面有很多属性看起来和 css 很像,是不是借鉴的。
|
14
zhangchioulin 2019-07-31 10:20:07 +08:00 1
我有一些别的语言的经验 Objc 和 Python,一礼拜就基本上手了(都是看官方文档),还顺便写了个工具。。
|
15
xiangyuecn OP @jewer3330 #6 忘了还有 php,比 swift 还难写,语法和 oc 倒是有些地方很相像,难写,还没入门就放弃了
|
16
xiangyuecn OP @wbing #11 感谢,我去学习一下
|
17
finab 2019-07-31 10:25:48 +08:00 1
Swift 最起码比 Java 好用太多了吧😀,你 java 都能写的话
2. 你可以直接使用 protocol, 如果有公共方法实现即可,不用用父类继承 extension protocolName { } 4. extension NSObject { func toString() { return "\(self)" } } |
18
xiangyuecn OP @hoyixi @zhangchioulin 嗯嗯,学了一下基本语法,上手写代码还是挺快的,但具体到 ios 里面的功能调用,就要慢慢摸索翻文档研究
|
19
finab 2019-07-31 10:28:10 +08:00
4 手写忘了写方法返回值
extension NSObject { func toString() -> String{ return "\(self)" } var str:String { get { return "\(self)" } } } |
20
xiangyuecn OP @finab #17 19 学习了,还好继承的写法还没写几个类,待会全部改成这个写法😁
|
21
PanPancf 2019-07-31 10:30:10 +08:00 1
2. 要想让子类必须实现某些方法,可以通过 Base class 和 protocol 的组合来实现,也可以在父类实现里 fatalError,这样在你编码期间就可以保证发现没实现对应方法的子类。
4. var description {get} 5. 会 throw error 的函数签名里会有 throw 关键字 |
22
Aixtuz 2019-07-31 10:30:45 +08:00
抄的还不带格式,我猜测很可能是 CSDN。
|
24
xiangyuecn OP @finab 不过 string 那个转换和直接"\(obj)"区别不大
|
25
PanPancf 2019-07-31 10:35:36 +08:00
Swift5 其实挺复杂了(虽然比不上 cpp 复杂哈哈哈),但学到够写一个 App 的程度并不困难,真正麻烦的是各种 framework API 的坑
|
26
CommandZi 2019-07-31 10:35:53 +08:00
protocol 还有 protocol 加上 extension、继承还有方法的 public 声明,已经覆盖 JAVA 里面的抽象类和接口的用途了
|
27
xiangyuecn OP @PanPancf #21 子类的 17 楼的好些,刚查了一下 fatalError 是断言,这个是运行时检查吧,感觉如果测试时没有覆盖到所有方法还是会遗漏的。
5.这个主要是昨天用到了 FileHandle.write 这个函数,帖子里面有 api 文档链接,它说会引发异常,却似乎没有任何检测异常的手段。 4.我研究研究 description 这个属性。 |
28
MuscleOf2016 2019-07-31 10:42:18 +08:00
@liuyx7894 真的吗,写 js 的来写 swift 会很爽?
|
30
finab 2019-07-31 10:44:14 +08:00
|
31
xiangyuecn OP @PanPancf #25 哈哈,感谢,我研究研究 description 这个属性。
|
32
dawn009 2019-07-31 10:46:53 +08:00
几个新兴的强类型、编译型语言里面{Swift, Go, Rust}我一直感觉 Swift 的学习曲线最平滑。Rust 是悬崖状,Go 是锯齿状。
|
33
fghjghf 2019-07-31 11:02:53 +08:00
@34D 你怎么自己不去调查一下?你觉得你一家公司能代表这个市场吗?他没说错,移动端 iOS 市场行情最烂,毕竟人口红利没了。
|
34
PanPancf 2019-07-31 11:03:00 +08:00 1
@xiangyuecn #27
如果你 override 的方法是事件驱动的,那确实可能遗漏。 FileHandle.write 这个方法比较特别,文档说明里会抛异常,但不是 Swift 的 throw Error 形式,这个 API 有历史问题,你可以再搜索一下是为什么。 protocol 承担的其实就是 abstract class 的作用。( Swift 比 Java 优雅多了,Java 的 lambda 基本是个残废哈哈哈 |
35
cgpiao 2019-07-31 11:13:05 +08:00
我最不爽的是为什么方法签名那么长,都占了好几行了。
|
36
34D 2019-07-31 11:14:39 +08:00
@fghjghf 你怎么自己不去调查一下?移动端市场不景气,就代表现在学 iOS 找不到工作,你只能说机会没以前多了,以前 iOS 井喷式爆发本来就不合理,现在只是趋于正常。你牛逼你会找不到工作?菜就是菜。
|
37
wangleineo 2019-07-31 11:37:40 +08:00
最受不了 swift 设计者对于字符串 API 的执迷,改来改去的让人崩溃
|
38
xiangyuecn OP @PanPancf #21 测试了一下 自定义对象、数字、字符串、bool 类型,放在[String:AnyObject]字典里面,obj.description 结果和`\(obj)`的结果是一样的。换成[String:Any]字典,Any 类型不支持 description,还是`\(obj)`比较万能些,现在不纠结用哪个了😁
|
39
xiangyuecn OP @wangleineo #37 一堆方法吓死人,单 swift 5 的截取字符串功能就研究了 1 天时间也没学会怎么写,最后自己扩展了两个 Substr(1,1),Substring(1,2)进行统一,不存在跨语言的障碍,清净了不少。
做选择题是最轻松的,但选择一旦变多了可能就变成了填空题,条条大路通罗马并非一定是好事😎 |
41
veightz 2019-07-31 13:33:37 +08:00
16 年一个核心模块用 swift 写的我痛不欲生,后续几年接连因为 sdk 升级多次维护...
语法变化频繁,向后兼容差。。导致 github 上看到的不少代码和语法无法参考,比较苦。 所以对无 iOS 或者无编程语言的新人来说,不是太友好 |
42
hell0v2 2019-07-31 13:55:07 +08:00
习惯了 oc 之后,感觉还有那么点优雅?! 好像,应该是习惯了大部分语言后都会有亲切感。。
|
43
qyizhong 2019-07-31 14:04:18 +08:00
平时 OC 和 swift 都会写,说实话觉得 swift 写起来还是很爽的
|
44
missnote 2019-07-31 14:57:10 +08:00
入门,mark 后看,想学学不动啊。
|
45
honeyCream 2019-07-31 14:58:49 +08:00
@34D 作为一个 iOS 从业者来说,最近确实很苦恼.以前因为市场需求导致 iOS 开发者井喷,以致于标准很低.现在一些提高门槛的办法不是说全错,只是对于那些学历不高或者没有大厂经验的人来说确实不太友好.我也不知道你所说的技术好到底是什么水平,但是最起码不是人人都能做到百里挑一.
|
46
honeyCream 2019-07-31 15:00:07 +08:00 1
@xiangyuecn 如果是初学者的话,建议看 raywenderlich 这家的书,只不过是全英文的教材,不知道楼主能接受不.
|
47
huruwo 2019-07-31 15:22:30 +08:00 via Android
2019 年加入国民党?
|
48
ansonsiva 2019-07-31 15:28:42 +08:00
居然没人提 swiftUI ?
|
49
ostholz 2019-07-31 15:29:39 +08:00
@wangleineo 不能同意更多。 比如要调用 subString, 这个痛苦
|
50
AlexaZhou 2019-07-31 16:03:39 +08:00
OC 比 swift 好用太多了,swift 一直说解决了很多问题,但在我看来 swift 带来的问题比解决的问题要更多
|
51
meetocean 2019-07-31 16:14:01 +08:00
刚开始看不惯语法,一个多月之后就已经习惯,现在反而觉得很好用。
去年今年都交了 100 美元,只要一交完钱,就没有精力开发,不交钱就心痒痒。现在换念念不忘第一款简单的游戏没有开发完成呢。 |
52
34D 2019-07-31 17:22:01 +08:00
@honeyCream 我的意思是高级和资深工程师一直都紧缺,实在是前几年初级开发者太多了。最近也在招人,一大堆简历里连技术单词都拼错,而且一错就是 7,8 个,十几个,我都在怀疑,这人到底用过这个技术或者框架吗?面试的结果当然也在意料之中。那你说这样的人面了几家公司都被刷了,他对别人说,iOS 工作找不到,你信不?而且这真不是个例,面的初级工程师都是这样的,我觉得不是偶然。
|
58
feikaras 2019-07-31 17:56:16 +08:00 via iPhone
@34D 真正会玩的人也不会在这种时候继续写 ios。要人不开好价格不就是请人滚。会玩的都会几个栈,一棵树吊死的才奇怪。
|
59
harley27 2019-07-31 17:59:04 +08:00
ios 是不是
已经开始吃枣药丸 |
60
honeyCream 2019-07-31 18:06:58 +08:00
@34D 这可能就是因为前几年市场需求太大导致门槛太低所导致的吧,所以现在大公司招聘 iOS 都在提高门槛,这也算是最简单的节约人力成本的方式.
另外如果贵司在上海的话,能不能麻烦给个 JD 看一下.或者可能的话,能不能站在用人方的角度来帮忙审核一下简历😂 |
61
gee1k 2019-07-31 18:21:20 +08:00 via iPhone 1
从零学习 swift,写的一个 macOs 项目
https://github.com/gee1k/uPic swift 两个最不习惯的地方: 1.如果方法不抛出异常我都没办法 try catch 2.类似 substring 这种操作用起来太复杂了 |
62
GromHellscream 2019-07-31 18:43:38 +08:00
直接上 CS193P 就完事了
|
63
ostholz 2019-07-31 19:18:22 +08:00 1
从 1.0 用到现在的 5.0, 确实感觉到 Swift 一直在进步。 比起写 ObjC 方便很多。特别是有 Playground 这玩意,随手就能写几行代码实验一下。
另外,Apple 在 Swift 上投入了很多, 也寄与了很大的希望。 现在 Server 端 (Vapor, Kitura )也渐渐成熟。 也是一种选择。 掌握 Swift 的一项附加好处是, 基本会了 Kotlin 的 60%。 两都 Syntax 很像, 有些地方思想也接近,比如 functional 这块儿。map/compactMap etc. 所以, 为什么不花几周时间多研究研究呢? ps. 有没有觉得这玩意的复杂度也渐渐向 C++趋近 |
64
XDDD 2019-07-31 19:21:03 +08:00 via iPhone 1
60 多楼了居然还没有人说出正确答案
4. 唯一正确的方法是使用 String(describing:obj)。对于实现了 CustomStringConvertible 的类,可以使用 obj.description 5. Swift 只有错误 Error,没有异常 Exception。如果你是指 Objective-C 中抛出的异常,你要记住,Objective-C 被设计为不可从异常中恢复,遇到异常应该直接崩溃,否则会漏内存。这不是 Swift 的锅。 对于字符串:Unicode-Safe 是一个极其强有力的承诺,你需要学习如何写出 Unicode-Safe 的程序,同时避免不必要的性能浪费。 |
65
XDDD 2019-07-31 19:38:17 +08:00 via iPhone 1
如果你发现有些设计难以理解 /不会使用,而又十分明显,是因为这些设计没有对 类型安全 /内存安全 /性能安全 /Unicode 安全 妥协。
|
66
ArJun 2019-07-31 20:14:02 +08:00
好好学,你会发现 iOS 滴工作真的不好找哈哈哈
|
67
XDDD 2019-07-31 20:22:52 +08:00 via iPhone 1
关于 2:
你并不关心类的继承关系,你只关心一个 variable (而不仅是 object )可以做什么。这叫做 protocol,而非 abstract。abstract 是中了面向对象的毒。 |
68
zsk425 2019-07-31 20:48:28 +08:00 via Android 1
关于 6,其实 Xcode 相比 gradle 是傻瓜式的,几乎所有配置都有图形界面,依赖管理一般用别的工具(如 cocoapods ),至于自定义 task,Xcode 在 build phase 里可以实现部分,更复杂的编译设置可以用命令行工具。
|
69
yikuo 2019-07-31 21:33:22 +08:00 via Android
@finab 通过 protocol+extension 这种方式可以为协议提供默认方法,但在声明这个协议的类里面要么不实现直接用这个默认方法,要么完全重新实现。这样做不到先调用 super.xx 然后实现其余逻辑,没法完全代替 abstract,有没有好点的办法?然后就是没有 protected,有替代方式吗?
|
70
fghjghf 2019-07-31 21:51:36 +08:00
@34D 我 4 年前就从 iOS 转去后端了,之前经历过 3 年 iOS 开发,还吃过一大波红利,只要要说 iOS 开发我现在技术的确很菜,谢谢!你是怎么理解如何叫行情不景气?假设有 10 个坑,10 个人去抢这就是最优解! 8 个人就是供不应求,20 个人就是供大于求!现在的 iOS 就是第三者情况。对最中低层极不友好!现在入行比 50 入国军更残酷。任何一个人做到行业上层都能找到工作,仔细理解下我说的话,这又和我提的论点有什么关系?用你的逻辑,我是否可以证明任何行业其实都很蓬勃,无论是已经退出市场都 BB 机维修员、电影放映员、供销社职员,还是现在火热的行业岗位。只要你能做到行业上层。不用看冰冷的招聘数据了,就我身边很多朋友包括我老婆,都是做 HR 的,从他们口中得出,移动端行情的确比后端差。
|
71
winglight2016 2019-07-31 21:58:18 +08:00
swift 已经挺好了,lz 觉得难用可能是习惯了 java,但是毕竟诞生时间差了 10 多年,设计思路差别很大,如果开发过 js 或者 python 可能就会感觉很类似。个人体会,学一门新语言最大的障碍就是思路转不过来,比如,从 think in java 转到 think in js/python 的确很不适应,但是基本上做完一个项目就好多了。找不到资料的问题,大概用了中文在百毒搜索? google 英文关键字感觉会准很多,之前发现搜索中文出来在 csdn 上的文章会有意无意的给人挖坑,我就再也不用中文搜了。
|
72
mxalbert1996 2019-07-31 22:01:32 +08:00 via Android 1
看了 64 楼终于有人提到 String(describing:)了。。。我就奇怪了这么多人难道都没看过 String 的文档吗?
|
73
xiangyuecn OP @XDDD #64 65 67 膜拜大佬,受教了🤞
|
74
xiangyuecn OP @mxalbert1996 #72 连 string 的一些算是比较基础的功能也要研究文档,太心累了😂
真实画风是这样的:String.init(describing: CustomStringConvertible & TextOutputStreamable) ,如果没有研究过,就算 xcode 里面显示了这个方法,也不太可能会去调用这个方法,CustomStringConvertible 是谁?这个对象有没有继承 CustomStringConvertible ?一脸楞逼😂 当然现在提点一下就知道原来还有这个玩意可以用。 |
75
onevcat 2019-07-31 22:47:02 +08:00 5
1. 不知道你看的什么书..如果不小心是我写的话,只能说抱歉...😂 官方教程对于语言来说很好,但是和 iOS 关系不大。建议的话去看 CS193p。
2. Protocol > Inheritance。Swift 不是一门传统的“面向对象”的语言,只是能写父类而已。抽象类这种设计争议本来就很大,在 Swift 里没有提供。你的情景的话,protocol 配合 extension 比较像。如果你有强烈的子类或者抽象类需求,说明你的架构哪里出了问题,不是 Swift Style 的代码。 3. 这个世界的运行规律就是如此。 4. 看你想要转成什么样的字符串..."\(obj)" 哪里丑了?你是指转出来的结果丑?自行实现 CustomStringConvertible 或者 CustomDebugStringConvertible 即可。 5. FileHandle 这种上古年代的东西,除非真的有强烈需求在这种层次上操作,应该很少有人用了。这片的错误处理是 NSException 负责的,要用到 ObjC 的 `@try @catch`,是非常丑陋的写法。你可以认为是三四十年前的遗留代码。这个问题在很久以前就有[讨论和提出]( http://openradar.appspot.com/30537361),但是 ObjC 的时候就用了非常糟糕的设计方式,导致 Interface 自动转换的时候不能按照惯有的 error 处理来搞定这个,也没有强行去改的可能性。纯 Swift 基于 C 的 Foundation 封装倒是[解决了这个问题]( https://github.com/apple/swift-corelibs-foundation/blame/master/Foundation/FileHandle.swift#L504),但在 iOS 的话个人还是推荐自己用 ObjC 封装一遍。 6. Xcode 项目从来都不是让你用人工编写的..请使用 Xcode GUI。 还有什么不明白的可以随时提出..有空的话也许能帮得上忙。 6. 5. |
76
onevcat 2019-07-31 22:49:43 +08:00
V2EX 在回复里居然不支持 markdown 么...||| 这可真蠢
|
78
cht 2019-07-31 23:06:58 +08:00 1
自己接触 Swift 之前基本没有写过现代的 OOD 的代码。直接从零学习 Swift 后再读 C++,觉得 Swift 还是轻松太多了,没有旧的语言的历史包袱。
Swift 值得诟病的一点就是字符串处理,为了 Unicode 和性能优化不如传统语言或者 Python 那样简明。 另一点是 Apple 的官方库文档有时记载地不够全面,有些隐藏条件需要试才能知道,这一点不如成熟的语言。 String interpolation 的形状确实和其他语言不太一样,不过如果先入为主的话反而会觉得很方便。自己写 Python 的时候很喜欢用 f-strings,转到 Swift 甚至更加流畅了。 对我这种入门者而言 Swift 最爽的就是 closure 以及 GCD 的多任务管理,以及 iOS 平台无数基础功能的官方库。比起写 C++ 来说轻松太多了 ❤️ |
80
xiangyuecn OP @onevcat #75 膜拜大佬,前些天刚刚收藏了喵神的博客慢慢学。现在写的 swift 代码和 java 一个风格😂。昨天找 outputstream 资料的时候,没有找到,因为要文件内任意位置写二进制数据,首先搜索的就是 swift outputstream,没有找到什么有效的资料,看到人家用的比较多的还是 filehandle 这个,就照着人家写的代码来用了。看文档这个对象是有点老,SDK 支持 iOS 2.0+。
刚又去 Foundation 文档里面看了一下,《 File System 》这节里面只有 FileHandle 类像流。最后看了一下《 Streams, Sockets, and Ports 》这节,原来文件流在这里面;这个标题真不好,Sockets 和 Ports 这两个词一眼看过去和文件几乎没有什么关联,还以为是网络请求方面的😂 每次提交代码的时候看到 project.pbxproj 里面的变更都是一脸楞逼的状态,所以就吐槽了一下,不过说不定以后可能会手动去修改这类文件。 |
82
geying 2019-08-01 02:58:40 +08:00
最近也在看 ios
可以去 YouTube 上找一些简单的应用教程 swift 基本语法会就 ok 了 也就是视频里写的大多都能看懂 看不懂的语法再去看文档或者百度 |
83
tomoya92 2019-08-01 07:54:16 +08:00
|
84
tomoya92 2019-08-01 07:55:37 +08:00 1
偷偷分享一下我之前学习 swift 总结的博客,绝对原创 https://tomoya92.github.io/category/#swift%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0(%E7%BA%AF%E4%BB%A3%E7%A0%81)
|
85
madtcsa 2019-08-01 08:28:15 +08:00
IOS 开发,除了 Xcode 比较难用。其他的都很好。
Swift 很好用,除了 let arrary = [String]() ,鬼知道设计者咋想的,声明为 let 的数组不能更改数组元素 |
86
xiangyuecn OP @tomoya92 #84 点开看了一下大佬的博客,发现一个灰色链接,原来是昨天已经看过了一篇文章,好巧吧😁
《 swift4 WKWebView 使用 JS 与 Swift 交互》不过这篇文章内容当时看时感觉和别的文章一样,千篇一律。wkwebview 搜索到的 js 调用 swift 代码基本上都是通过 webkit.messageHandlers。这个路子我没有试过,但明显有致命缺陷:不能同步返回调用结果,简单的功能调用,都要走重量级延迟的 callback。 目前 js 调用 swift 代码我采用的 swift 端重写 prompt 弹窗界面,今天还在完善这里面的接口。js 的 prompt 有个特性是:同步+支持输入(标题、默认值)+支持输出(返回文本结果),其实是用的 Android 4.x 过气版本的老路子,但并未发现 ios 有类似的文章。 |
87
free9fw 2019-08-01 09:06:15 +08:00
明显 lz 能力欠佳
|
88
xiangyuecn OP #86 刚才又搜索了一下“ ios wkwebview js ” 没有同步返回结果相关的文章,但加一个同步关键字“ ios wkwebview js 同步”就有了一大堆类似的方案😂 遇到问题时往往就是这样,关键时候搜不到,平时搜索一大堆😁
|
89
xiangyuecn OP @free9fw #87 被你发现了😁 有人指点一下会好很多呀
|
90
finab 2019-08-01 09:56:29 +08:00
@yikuo 可以看看上面喵神的解释,如果实在要这样,继承某个父类吧,
好像也没有可替代 protected 修饰符的,稍微有点像的可以用 fileprivate,然后将子类写在一个文件里 你可以搜一搜 Swift protected 看看相关的讨论 |
91
finab 2019-08-01 09:56:52 +08:00
|
92
wxl1380610 2019-08-01 10:00:40 +08:00
现在前端坑很多 , 还是学前端吧 ?
|
93
mxalbert1996 2019-08-01 12:22:25 +08:00 via Android
@finab 你再读一遍楼主的第 4 个问题
|
95
finab 2019-08-01 14:19:28 +08:00
@mxalbert1996 然后呢?
|
96
mxalbert1996 2019-08-01 14:23:18 +08:00 via Android
@finab 楼主自己说觉得"\(obj)"有点丑问有没有更正式的方法,然后现在有人回答了你来说这两个不是一样么,废话本来就是一样的啊,只是回答了楼主的问题而已。
|
97
finab 2019-08-01 14:28:19 +08:00
@mxalbert1996 喔,明白,但我其实是回另外一个人的 “唯一正确的方法是使用 String(describing:obj)” ,
之前已经有人说了 “\(obj)” ,但是他说 到他那为止,还没人说出正确方法, 唯一 正确的方法是 String(describing:obj), 然后我回复 难道 "\(obj)" 不是相当于 String(describing:obj) 么, 怎么"\(objc)" 就不是正确的方法 |
98
fvckDaybyte2 2019-08-01 14:42:55 +08:00 via iPhone 1
2 swift 子类可以继承 extension,oc 的话直接继承 category,子类必须强制实现里面的方法
5 写 ios 无论 oc 还是 switft 都没用过 try,处理异常通常都是 completion block 读 NSError ……如果异常会导致段错误或者 crash 都是提前规避…… try 虽然支持,我自己从未用过😂 |
99
xiangyuecn OP @fvckDaybyte2 #98 swift 不用 try catch 的写法能不能举个例子呢,还有某个方法调用可能会导致异常,该怎么提前规避呀
|
100
fvckDaybyte2 2019-08-01 16:47:32 +08:00 1
@xiangyuecn
func requestForUserDataWith(_ parameters: [String: String], completionHandler: (_ result: [String: Any], _ error: Error) -> Void){ //.. Code process } 如果这个方法有异常(错误)就是直接在 completionHandler 里返回,就是把 java 里面的 throw 替换成 return,catch 替换成 completionHandler... |