咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)

酷课堂iOS交流群

 

我们是一个什么样的组织:

酷课堂iOS交流群,聚集了一群热爱技术、有趣、有料,平均Q龄在10年以上的“老司机”,他们遍布在全国/球各地,有知名企业iOS工程师、高校大学生、自由职业者……如果你也是这样的人,欢迎加入我们,一起畅聊iOS技术及周边。

“很干”

“很佛系”

每晚11点后熄灯(禁言),只聊技术,几乎不闲聊。

IT从业者自学成功的不少,但从入门到放弃的人更多。一个人走的快,一群人走的远,希望你会是坚持到最后的那一波,希望我们可以一起相伴走的更远一些。

 

付费学员专享福利:

(额外福利,不承诺永久提供!)

1.为了更好的交流,我们开设了QQ群

2.已购买课程的同学,请添加小课微信号:coolketang001、QQ:3068527144

3.截图订单号,即可获取对应QQ群号,及免费练习源码。

(苹果商店的订单号,可在购买账号绑定的邮箱中找到)

酷课堂iOS交流群问答精华整理--201810期

 

本期关键词:

1.《iOS移动开发从入门到精通》第二版图书上市;

 

2.《互动教程》APP合集上线App Store;

 

3.《iOS从入门到精通》课程更新至Xcode10、iOS10、Swift4.2, 为了不影响你的学习进度,请已经购买的小伙伴,及时更新到最新课程,然后找小课拿课程最新源码哦~

(注:《Swift4实例教程》和《iOS开发中的神兵利器》两套课程正在更新中,完成后会在群里和公众号通知大家)

 

 

 新书上市:

咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)_第1张图片

双十一期间,各平台均有不同程度的促销活动,感兴趣的小伙伴,可以在当当、京东搜索“iOS 李发展”即可找到,投资自己越早越好。

                           

本书内容简介和适合人群:

本书包含Swift 4.0语言、Cocoa Touch、视图控制器、控件、表格、网络、地图、音频、视频、动画、触摸、手势、故事板、CoreData、性能测试、机器学习、增强现实、加密解密等众多功能模块。这些内容是iOS开发必知必会的内容,需要读者重点掌握。

 

读者对象:

通过对本书的学习,读者可以基本建立起iOS 11技术的思想框架,并且对iOS 11开发的过程有一个全面的了解。因此本书适合iOS开发初学者、iOS程序员、iPhone开发人员、iPad开发人员的学习。

 

建议和意见:

如果你有关于本书的任何建议和意见,请随时添加小课微信:coolketang001,和我们联系,感谢!

当当网购买链接:

http://product.dangdang.com/25535011.html

 

 

 

本期问答详情

年底就要到了,你还能冲一下鸭!快上车!

以下内容由@客服妹子爬楼整理,希望小伙伴的这些提问,对你有帮助/启发,精选在此,喜欢请收藏,给答题的大佬们点赞!

 

感谢appman、赖着、风、回忆满满、神奇的海螺、김위청、MissLIBRA、King、김위청、强迫依存 、zhu、Warrior 、Jack、Joseph等大神们的分享和解答,特送上价值38元【互动教程APP合集】30天体验名额一份.

 

这套课程集合了,iOS移动开发、PS平面设计、Excel办公软件等7门课程。

我们希望用这样“手把手”带着学的方式,让更多人可以快速入门新领域。

请大神们随时私信客服妹子领取。今后我们每月都会有送书、送课、送礼物等等福利,敬请期待~

苹果商店互动教程合集下载链接:http://suo.im/4V00MR

 

 

1、需要在App里做个用户注册登陆,用于保存用户数据在服务器上,该怎么弄?

(APP里的后台那块不知道怎么写~用什么写?)

群主:

后台那块一般用Php、Python、Java来写,

1.首先你需要先购买一个服务器,或者到阿里云买个云空间。

 

 

 

2、Mac 活动监视器打不开,一打开就闪退, 那位大神给指点一下,多谢!

请参考这个:https://jingyan.baidu.com/article/359911f5954fb857fe0306bc.html 

 

 

 

3、低版本Xcode,用于iOS测试版本的SDK在哪里下载呢? 

这里有各个版本的下载源:

https://developer.apple.com/download/more/ 

 

 

4、请问,为什么我创建的项目没有push notification ?

群主:

如果你的账号不是付费账户,则会有这种情况,其它情况请参考:https://stackoverflow.com/questions/30979218/no-push-notification-capability-in-xcode 

神奇的海螺:

调试过程中看到这个提示,不是付费的账户,连学习的资格都没有了?
could not execute support code to read Objective-C class data in the process. This may reduce the quality of type information available.
 

群主:
你进入苹果开发者账户后台,然后确认下是否已经开启Push Notifications。


神奇的海螺:
怎么进去?


群主:
苹果的一些advanced、capabilities需要付费账户才能显示和使用,否则只能学习理论而无法在真机设备上实践。


神奇的海螺: 
现在模拟器也没有推送


群主:
点击右上角的[Account],使用你的Apple ID账户登陆


神奇的海螺:
在哪里看

咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)_第2张图片

 

群主:

[Certificates, Identifiers & Profiles > iOS App IDs]

咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)_第3张图片

 

神奇的海螺:
为什么我的没有documentation上面的那些菜单???


群主:
这个需要加入苹果开发者计划Apple Developer Program,然后就可以了。iOS 开发者计划会员可以创建证书和配置文件,这样才可以在真实设备(而不是模拟器)上测试应用程序。像定位、推送、内购、蓝牙、iCloud等功能都需要真机测试。
这是加入流程:https://www.jianshu.com/p/043c6405c641 

神奇的海螺:
要交钱?
99刀/年?

我付款了

 

神奇的海螺:

想学好swift真的有点难,语法不稳定,API也不稳定。

学OC的话,还得从头来。@群主swift4.2算是稳定下来了吗?下一个版本API会不会又变了?下个月16号是否最终分支确定合并?

 

(为这位小伙伴的行动力点赞,年轻时投资自己,无疑是最好的升值方式。

从来不存在一件事,只要稍微努力就能做好。任何一份光彩夺目的成功,背后都是玩命地付出。共勉!

 

 

 

5、开发中遇到一个问题,需要保存一个五维数组,可以根据下标存取五维数组的数据。需要如何包装处理?求大神指点一二

(程序员就是传说中的好学、逻辑清晰的学霸本尊,没错了!)

 

五维数组其实就是多维数组,和普通数组的使用方法相同。
//声明
var array = Array>>>>()

//添加
array.append([[[[1,2],[3,4]]]])
array.append([[[[1,2],[3,4]]]])

//根据下标修改
array[1] = [[[[5,6],[3,4]]]]

//删除
array.remove(at: 0)


群主: 
GitHub中有针对Swift数组常见功能的封装,请参考《神兵利器》课程中的第5章的2、6、10节

漫道:
上述创建多维数组每个维度不好确定所表达的意义。
开发中需要每个维度都需要有具体的含义。
比如:三维的是长宽高,可以每个维度有不同的数值。
长1宽2高3的是一个1*2*3的立方体。
五维也需要这样可以任意设置每个维度的数值。
比如
第一维的数值是1
第二维的数值是2
第三维的数值是3
第四维的数值是4
第五维的数值是5
每一个维度的数值都可以是任意的。需要判断存取的五个下标是否在创建的数组中。根据五个下标存取,这样该如何处理呢?
群主 2018/10/25 15:09:10
从所举的正方体例子可以看出,这个需求使用结构体实现是否更合理一些?五个纬度用结构体的五个属性表示,五维数组其实就是一维的结构体数组。


漫道:
结构体不能保存五个维度的数据。事实是需要要做一个数学方面的软件。数组可能是N维的维度不确定~应该如何处理~


群主:
原来是线性代数中的矩阵数据的处理,机器学习中的多维数据往往是存在Python的一维数组中的,不可能几维矩阵就用几维数组,机器学习中的数据矩阵有上千个维度也很正常。
使用Swift处理矩阵和向量数据可以参考这里:
https://medium.com/shidanqing/swift%E7%9F%A9%E9%98%B5%E4%B8%8E%E5%90%91%E9%87%8F%E8%BF%90%E7%AE%97-669a4973d2e 

漫道:
对的。N维数组可以存在一维数组中,那N维数组的下标和一维数组的下标应该有个公式,组合成对应关系。群主有没有相关的公式?

矩阵的概念是专指二维数组。群主不要混淆了~


群主:

矩阵可以是多维的,以这个矩阵为例,当它转为一维数组之后,a32在一维数组中的下标是(3-1)*n+(2-1)


漫道:
矩阵不讲维数,维数是线性空间的性质,空间的维数是指它的基所含向量的个数,一个矩阵不能组成线性空间,不能讲维数。
在数学中,矩阵的维数说法不一,并没有定义矩阵的维数, 线性空间才有维数, 所以这造成了两种解释:
1.矩阵的维数是其行向量(或列向量)生成的向量空间的维数;
2.指它的行数与列数 (一般编程人员喜欢这样定义, 因为他们关注的是数组的大小)。

矩阵的秩,其实就是第1种,即矩阵的维数就是矩阵的秩。
漫道-深圳-长跑 2018/10/25 16:24:27
先从具体的理解,长1宽2高3的一个1*2*3的立方体的每个元素放入一维数组中。对应关系?

(有木有人和小课一样,对这位程序员小哥哥的数学App感兴趣的,评论区告诉我~)

 

 

 

6、咱们的课程里,有微信的这种菜单示例吗?

咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)_第4张图片

 

 

参考这个微信popup示例:http://code.cocoachina.com/view/133636 

 

 

 

7、哪位老铁知道这个该怎么改?

咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)_第5张图片

蒋哥:

itemArray[indexPath.row]的值是字符串,字符串没有done属性,你可以先将itemArray[indexPath.row]的值赋予一个常量,然后检查一下常量的值和类型。

 

 

 

8、ios 有什么新的认证吗?我在之前上架App 的时候没有被拒绝,现在更新居然被拒绝了,怎么破?神奇的海螺: 
你申请了定位,但是没有说明为什么要使用地位功能。

 

群主:

咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)_第6张图片


 

김위청:

我写了,而且写的很清楚 (好委屈,思密达~) 

 

群主:
可能是审核人员看不懂,你将截图,以及将截图文字翻译成英文和中文之后,将这些申诉材料在后台提交给审核人员即可。
 

김위청:
您指的后台是这部分?

群主:
是的,在这里回复审核人员

 

김위청:
我明白了,谢谢群主提示,我再试试。

 

 

9、升级swift 4.2这个堆栈,为什么是空值呢?

群主:

需要在sendEmail方法的开头,添加一条提示语句。这是由于用户尚未在设备上设置邮箱的账号,一旦设置好了就可以正常运行了。

咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)_第7张图片

神奇的海螺:

Mac登录QQ还能显示Mac在线?

 

神奇的海螺:

什么邮箱都可以吗?


群主:

是的设置一个邮箱就可以

 

 

 

10、有max os开发的相关demo可以共享一下吗?谢谢!

群主:
目前还没有macOS方面的教程,你打算学来做什么?

 

appleMan: 
用来给测试写个自动打包的软件

 

群主: 
@appleMan 自动打包可以使用脚本,参考这个https://github.com/stackhou/AutoPacking-iOS 

 

 

 

11、如何把拍的视频上传到服务器吗,我现在做的是scoket。
群主:

不太适合使用Socket发送视频,需要将视频转为Data,然后再使用苹果提供的URLSession发送到服务器

 

 

 

12、swift有没有搜索功能带历史记录的demo可以参考一下,谢了!

群主:
@土豆 你是要搜索服务器上的数据,还是搜索本地CoreData中的数据?

 

土豆:

历史搜索是本地记录的数据是从服务器取。
 

群主:没有这样具体的Demo,需要手写了,你可以使用URLSession获取数据,Sqlite或Coredata存储数据,具体参考相关的课程即可。
 

土豆:

那些我懂,我是不太明白用swift怎么实现这个界面布局,
能告诉我一些思路或者有参考资料也行。
我在网上找到很多oc的,但是没有swift的。


appleMan:

其实可以借鉴oc的思路哇,oc和swift是相同的


群主:

界面:页面上方使用UITextField和一个按钮,用户在UITextField输入搜索关键词,点击按钮执行搜索的方法。
页面下方使用UITalbleView显示搜索的数据。

需要使用:
URLSession或Alarmofire获取服务器数据
Sqlite或CoreData存储本地数据
UIBttuon、UITextField、UITableView等界面组件
每个模块咱们都有教程,你需要将它们联结起来

 

豆 :

感谢群主提供的思路,我再研究一下。

 

 

 

13、老铁们,有遇到这个情况的吗?

(这是一条来自老司机的经验分享)

appleMan:

苹果不允许这样的路由器,打开系统的某个设置了。
我之前也是遇到过这个被拒问题:
[NSURL URLWithString:UIApplicationOpenSettingsURLString]改为这样既可


风 :

@appleMan 这个不行的,入不了系统WiFI设置界面


appleMan:

那你试着将url进行转码看看,
能不能绕过苹果的审核。

 

 

 

14、请问,怎么把视频转成Data,再把Data转成视频呢,万分感谢!

群主:

视频转Data简单,参考这个https://www.ctolib.com/topics-114151.html 
OC版的需要修改成同名的Swift方法
Data转视频参考这个https://my.oschina.net/wayzhu/blog/1863493 
 

V先生:
我不会oc,这个我看到了,但还是不会用呢!


群主:

那你可以参考这个: 
let url=NSURL(string: videoUrl); 
let urlData=NSData(contentsOfURL: url!);

 

V先生: 
好的,太谢谢您了 !

 

 

 

15、这个错误的问题是出在哪里了?我找资料后推测应该是“类型转换失败”,但是按找的资料写还是无解。求大神指点!

参考这个修改一下Class name:https://stackoverflow.com/questions/32048458/core-data-could-not-cast-value-of-type-mytype-mytype-2-to-mytype/38139307 

(10月更新后的《iOS从入门到精通Xcode10+Swift4.2》课程中,针对这部分变化,有做说明,可私信小课发给你。)

咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)_第8张图片

 

 

已根治了这个问题,原因如下:

默认使用Use CoreData创建的DataModel映射文件的默认名称为__CoreData______.xcdatamodeld,删除重新创建就行了,这应该是个swift的bug;默认名称无法识别,必须要重新创建,使用正常的命名方式去命名

 

感谢这位老铁分享解题思路。

 

 

 

16、这个更新cocoapods 怎么会出错呢?

群主:将数据源从https://gems.ruby-china.org 
改为https://gems.ruby-china.com 
就是把域名后缀从.org改为.com


김위청:
明白了 

 

 

 

17、在代码层怎么拿到对应的值啊?

 

appleMan:

如果是在当前类里面过去到值,就定义为静态变量吧
如果希望外界都能过去到值,就在pch文件中以宏定义的方式


Rocky:

那样的话还能区分编译的形式吗?debug还是release 。

 

 

18、“踩坑记”分享, 希望其他小伙伴看了之后,可以避开掉进相同的“坑”,哈哈哈

appleMan :

iOS12、XCode10踩坑记

https://www.jianshu.com/p/a28949276917 
各位炕友检查各自的工程中是否引入了libstdc++.tbd动态库,xcode10已经将这个库废弃了,将有libc++.tbd代替。

还有如果在打包时,遇到这样的错误:Failed to verify bitcode in AipBase.framework/AipBase:
error: Cannot extract bundle from /var/folders/n2/2hc63w0d555cdbpqxwmpy84w0000gn/T/XcodeDistPipeline.ujv/Root/Payload/XXXX.app/Frameworks/XXXX.framework/XXXX (i386)类似的红色提示,貌似是由于xcode10导致的,解决方法在上面的链接中

 

感谢分享“踩坑记”,希望其他小伙伴可以因为你的分享,避免掉坑~

 

 

19、xcconfig 配置的变量怎么引用使用啊!

群主:

这里有在不同环境使用的方式:

https://www.jianshu.com/p/9b8bc8351223 

Rocky:

额 多谢
一般项目中怎么配置正式服和测试服或者很低服的地址啊
本地服


群主:

一般创建一个单例对象,用于返回各种环境的服务器地址,或者其它常用的常量。

 

 

 

20、请教一个问题:let path = Bundle.main.path(forResource: "index", ofType: "html")

 这个可以得到当前文件夹下的index文件的路径,如果index在另外一个Test文件夹下,怎么得到路径啊?

群主:

使用这个方法:
let plistPath = Bundle.main.path(forResource: "DemoPlist", ofType: "plist", inDirectory: "index")
不过你要先在这里将文件夹加入到Bundle:

咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)_第9张图片

噢呦呦:

好的,我试试,非常感谢
能找到了,谢谢

 

 

 

21、竞拍类 App 上架审核,需要资质吗?

贷款类的App是需要许可证的。竞拍类的不太清楚,不过金融类的App的审核是非常严格的,苹果会严查资质,一般需要金融许可证,ICP电信服务增值证书,以及营业执照等。

 

 

22、大伙 帮我看看这个代码是不是把其他格式的视频转成mp4,但是没保存在相册的。

 

73:

你保存到app的目录下了
你回看调的是app目录下的视频文件,要保存到相册,你还得将文件从app的目录下保存到相册里,用PHPhotoLibrary。


群主:

首先你到沙箱目录中检查一下是不存在这个mp4文件。

 

。◕‿◕。 :

但是相册里有啊。


73:
相册里有,那肯定是在其他地方把文件复制到相册里了。至少你截图的代码中,没有保存到相册的行为。


。◕‿◕。:
好的,我知道了,谢谢啊。


73 :

截图的代码就做了一件事,读取一个文件,在本地目录下将它以高画质保存为fileName.mp4的视频文件。


。◕‿◕。 :

我能把mp4文件转成data吗?
是拍的时候就能得到这个mp4文件还是保存到相册之后在根据路径读出来这个文件。


73:

不用保存到相册,exporter就是把源视频导出到newvideopath这个本地目录的,只要你不去删掉它,读它(newvideopath)就是data
你的源视频是来自于outputurl这个地址,let exporter = AVAssetExportSession 那行

咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)_第10张图片


。◕‿◕。:

读它(newvideopath)就是data怎么读啊,我是新手,还是自学的,太多不懂了,请大神多多指教。

73:
意思是newVideoPath就是获取这个视频文件的地址,至于怎么读取,得看你具体用来干什么了。例如你想上传它,最好是问群主用什么来上传最适合新手。
 

群主:

推荐用lamofire就可以传视频 。

 

 

 

23、碰到一个问题。网上找到答案,但不知道该怎么改。麻烦大家帮我看看怎么回事。谢了!

咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)_第11张图片

Joseph:

http://suo.im/4Fi1d8《神兵利器》,第二章,第十八个项目。


群主
检查一下项目中是否有名为selectedRectangle的图片


Joseph:

哦哦,好的。谢了。
搞定了。:)

 

 

 

24、写表单,你们通常都有哪些方法?纯手写,还是用第三方库?第三方库哪个好用点?

简单的表单用手写,复杂一点的可以使用第三方库Eureka,《iOS开发中的神兵利器》课程中有讲解到这个类库。

网易云课堂视频课程链接:http://suo.im/4V53CF

 

 

 

25、觉得你们的互动教程,开发的挺好的。不知道有没有从零开始到项目上架的完整教程,有的话,我想花点钱买来看一下。(这是求虐的节奏嘛)

群主:

目前我们的iOS系列课程三件套中,《Swift4实例教程》的最后一章,就是一个完整的项目教程,这是课程链接,你可以了解一下。

 

(双十一期间,网易云课堂平台有活动哦~投资自己就是“该出手时就出手”,错过这次,小课也不知道要等到什么时候了!而且为了配合网易的活动,我们还推出“买课送课”活动,这个月买iOS系列三件套视频课程,即可赠送同款价值50元的互动教程)

 

酷课堂iOS系列课程三件套包括:

1.《iOS从入门到精通》课程,涵盖了大部分iOS开发的功能;

2.《Swift4》主要讲解语言和一些实例教程;

3.《iOS开发中的神兵利器》课程则大规模讲解CitHub中热门的iOS开源项目。

另外《iOS移动开发从入门到精通》第二版最后七章,也有讲解一个完整的、已经上架的项目的整个制作流程。



 

 

26、碰到个问题,在第二章的第11个技巧中出现的,麻烦大佬们帮忙看看,谢谢!

咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)_第12张图片

群主:

eekDayRow是自定义视图,需要到GitHub中的Example文件夹中下载。

咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)_第13张图片

 

Joseph:

好的,谢了,Example中不报错,但我的项目中还是报错。
我把CustomCells.swift拷贝进去就好了,还有一个bug。

全搞定了。哈哈哈。

原来是还有个FloatLabelTextField.swift也要拷贝进去。

 

一个人的知识面有限,大家一起讨论才能碰撞出更多的火花

 

 

 

27、我的编译没通过,一共是两个问题,找不到好的解决方法,麻烦群主帮我看看,谢谢!

咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)_第14张图片

第二章有很大一部分是讲Eureka的,最好不要被4.2影响到。
好像可以用carthage更新到4.3,我在尝试。
Carthage is a simple, decentralized dependency manager for Cocoa.https://github.com/xmartlabs/Eureka 


强烈推荐carthage,不报错了。
https://github.com/Carthage/Carthage 

(看来这位同学,已经自个找到解决方案了)

 

 

 

资源分享

1、《iOS移动开发从入门到精通》第二版,当当网购买链接http://product.dangdang.com/25535011.html

(也可在常用购书平台搜索“iOS 李发展”即可找到,购买后添加小课,有专属福利哦!)

 

2、让小白上瘾的手把手学习模式[互动教程合集]下载:

http://suo.im/4V00MR

 

3、iOS图像显示原理http://url.cn/5FHkDii

 

4、十分钟接入iOS 12新特性——Siri Shortcutshttp://url.cn/5OXkcR8

 

5、苹果10月30日发布会有什么?看这就知道了http://suo.im/4MJDgR

 

6、iOS 系统中导航栏的转场解决方案与最佳实践https://toutiao.io/posts/fbpg9i

 

7、一个6年iOS程序员的工作感悟,送给还在迷茫的你http://url.cn/5uhBObq

 

8、APP无埋点技术调研http://url.cn/5npo3xS

 

9、iOS 验证码输入一种实现思路http://url.cn/5YKeIzb

 

10、iOS性能优化——图片加载和处理http://url.cn/5JkmgTa

 

11、iOS界面渲染流程分析http://url.cn/5y5Zxwf

 

12、适配iPhoneX全系详解,更新Xcode10爬坑http://url.cn/5wMFxPl

 

13、浅谈iOS页面流畅技巧http://url.cn/591G3OS

 

14、[译] 官方 Swift API 设计规范http://url.cn/53DesYD

 

15、iOS动画详解(学习动画看这一篇就够了)http://url.cn/5lzCJzj

 

 

// 本期互动话题 //

在学习swift的时候,你有遇到什么困难?欢迎评论区留言/吐槽

咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)_第15张图片

你可能感兴趣的:(人工智能,iOS移动开发)