酷课堂iOS交流群问答整理

版权声明:本文为酷课堂原创文章,欢迎转载但请注明来源。 https://blog.csdn.net/fzhlee/article/details/80524930
酷课堂201805群问答精华整理
                                                                             
1
问题贡献者:김위청
答题大佬:群主
tabbar点击的时候,怎么传值呀?


方法1:通过tabBarController.viewControllers[索引]获得指定索引的控件器,再进行赋值。
方法2:首先将数据保存到UserDefaults,然后在另一个子控制器中读取UserDefaults中存储的值。
方法3:将数据保存在AppDelegate.swift中的一个属性中,然后在另一个子控制器中读取AppDelegate属性中存储的值。
方法4:使用通知/委托。


2
问题贡献者:appleMan 
答题大佬:群主/ appleMan
pod install之前,target Membersgip里面的两个target(Dev、NewEBPP)都勾选上关联了类库,但是pod install之后,之前的关联就会被取消了,得手动去关联类库对应的target,您看有什么解决办法吗? 




是不是memebership type的原因,参考这个帖子看看https://github.com/CocoaPods/Xcodeproj/issues/222


我看下,创建的组件是私有的,集成到项目后我手动勾选关联到target,然后pod install就会自动取消关联了,然后又需要手动去关联到target
问题解决了,原来还要在工程中去配置一下参数


这里分享一下,我是如何解决关联类库问题的。
GCC_PREPROCESSOR_DEFINITIONS
HEADER_SEARCH_PATHS
OTHER_LDFLAGS以上都是在build setting中查找,在Debug和Release中添加$(inherited)
因为每次pod install后都会有黄色的警告,我之前没注意
 
可以参考下这个https://www.jianshu.com/p/d464a9254a1f


原来是这样解决的,主要是根据黄色的警告文字,然后在build setting中找到警告对应的地方,再增加$(inherited)。多谢分享~


恩恩,也就是工程中没有配置头文件的搜索路径,所以会出现这个问题吧
我现在的项目从开始到目前为止都没有用cocoapods做包管理,现阶段我做组件化要用到cocoapods,所以也踩了不少的坑
Xcode中的$(inherited)的含义https://www.crifan.com/xcode_inherited_meaning/


3
问题贡献者:无骛/神奇的海螺
答题大佬:群主/赖着
像这样的模块滑动特效,大概咋写,求指点 ?




UICollectionView支持多种布局模式,试试UICollectionView的Cover Flow布局






UICollectionView和UITableView有什么区别?是用来取代UITableView的吗?


这个swift制作的轮播图效果 似乎跟你要的一样 但不知道你能不能打开youtube  https://youtu.be/iafSFDlr7g4,打不开的话 就挂个VPN了@无骛


4
答题大佬:群主 
这部分怎么做,有没有资料可以瞅瞅啊 ! 


参考资料:https://www.jianshu.com/p/5b679538f585


5
问题贡献者:김위청
答题大佬:群主 
我想拷贝一个值,然后在另外一个app粘贴的那种拷贝,不太清楚具体的方法?


实现方式有两种
方式一:Drag和UIPasteConfiguration
方式二:Drag and Drop




6
问题贡献者:神奇的海螺
答题大佬:群主
创建XIB的cell,XIB的控件显示的是nil啊?


那就使用代码自定义cell吧,比较简单些, 详情参考《iOS开发中的神兵利器》的第二章第一节,代码如下:




7
问题贡献者:无骛
答题大佬:群主
请问卷曲动画怎么添加不同图片?我写数组它说不允许。


卷曲动画是虚像,并不会影响操作的视图。如果需要在卷曲时切换不同的图片,最好使用帧动画实现。


8
问题贡献者: 月光
答题大佬:群主
值打印出来带some=() 是什么情况,我发现接口提交时url多出了好多some(),   actualNumberMeetings=some(%22%22)  


Optional类型是一个枚举,当Optional没有值时,返回的nil其实就是Optional.None,即没有值。除了None以外,还有一个Some,当有值时就是被Some<T>包装的真正的值,所以我们拆包的动作其实就是将Some里面的值取出来。
如果不显示some,则在变量定时时使用!,如var str: String! = "CoolKeTang",或者在print时加!,如print(str!)


9
问题贡献者: 新手
答题大佬:群主
请问各位:iphoneX怎么适配呀?


先和适配其它机型一样适配iPhoneX,然后在针对 iPhoneX进行测试,遇到奇怪的问题可以拿来讨论。先发三个不错的适配参考文章,你会对iPhoneX适配有里有些底:
https://blog.csdn.net/chenyblog/article/details/77987751 


https://www.jianshu.com/p/a4e778c2236e 
https://blog.csdn.net/qq_27080247/article/details/78665450 


10
问题贡献者: 김위청
答题大佬:群主
CollectionView 只想刷新 headerview. 部分,有办法吗?
只想刷新这部分的代码。


是刷新尺寸还是内容,具体可以参考这个:https://blog.csdn.net/u012661893/article/details/52172146 


11
问题贡献者: 김위청
答题大佬:群主
我在tableviewCell里,写了两个样式互换的 ,
但是这个有些cell里无法正常显示,是什么问题呀?




switch语句应该是在cellForRowAt方法中的吧,这个问题应该是存在N和Y之外的情况造成的,你修改为if(folloChk == "N"){cell.btnFollower()}else{cell.btnFolloin}试试。


12
问题贡献者: 无骛
答题大佬:群主
请问,可不可以在含有控件的ViewController里添加动态背景效果?


是的,可以使用制作帧动画或其它线性动画,然后放在所有视图的底部


13
问题贡献者:王源
答题大佬:群主
请教一下,有没有iOS游戏开发方面的书籍推荐呢?就是有一个想法,实际上是想做一个相当于iOS上的社交软件,就是如果把做成游戏方面应该会更具有吸引力,虽然现在游戏用U3d的多,如果在xcode里面的话,应该也是可以的吧?


用u3d输出各平台时选iOS平台,这样就可以将项目输出为Xcode项目了。除了u3d还可以使用cocos2d或cocos2dx,也可以使用苹果自己的SpriteKit来制作游戏。


14
问题贡献者:He
答题大佬:群主
为什么我做出来的 uiscrollView 底下没有小白点?
可以使用svg格式的图标吗?




换个模拟器试试。Xcode9支持矢量图标
svg没试过,PDF的可以.使用开源类库可以使用svg格式的图片,参考神兵利器中的这节课。


15
问题贡献者:风
答题大佬:群主
对象的地址和对象本身有什么区别啊?


对象的地址是对象存储在内存中的位置,对象本身是具有属性和方法的某个类的实例。
在Swift中可以获得对象本身在内存中的地址:
var site = "coolketang.com 


"
withUnsafePointer(to: &site) { print(">>>>\($0)") }


16
问题贡献者: 王源
答题大佬:群主/ C
想问大家一个问题,就是我想用xcode 编写APP时把当前所有东西保存下来,打包成一个版本或者什么的,然后继续在这个上编写代码,该怎么保存呢?


用git吧
可以使用基于git的github管理源码的版本,可以设置为公开或私密。


17
问题贡献者:风 
答题大佬:群主
Document Type下的内容怎么删除?求大神指点!






无法上架,编辑info.plist文件就行了,@风 


18
问题贡献者:King
答题大佬:群主/ C
以前导入的pod文件怎么不见了,源文件是有的,打开之后却没有显示
拖也拖不进去。打开别的项目是可以显示的。


检查 是不是Xcode左下角的过滤框里输入了过滤关键词。


19
问题贡献者:神奇的海螺
答题大佬:群主/ C
swift开发中是纯代码开发比较好还是使用故事版?


如果和伙伴一起开发,则需要沟通确定用哪个。其它情况如果追求非常高的性能则使用代码,如果追求开发效率则用故事板。
Xcode9教程中有专门讲解故事板使用的。


20
问题贡献者:appleMan
答题大佬:群主/ C
利用oc特性无埋点统计http://www.cocoachina.com/ios/20180424/23149.html 
还有没有更好的无埋点统计呢?
又是runtimehttp://www.cocoachina.com/ios/20180424/23150.html 


App统计常用的Flurry、友盟、Google Analytics应该都支持无埋点统计,苹果自身也会统计App的使用情况,不过由于需要用户勾选支持开发者选项,所以统计的不够全面。


一直在用友盟的埋点统计,一会我再去研究下它的无埋点,谢谢@群主 


21
问题贡献者:He
答题大佬:群主/ C
哪个教程里有在手机里输入文字,然后保存,下一次还可以通过手机访问的教程呀?就像笔记软件一样。或者说有没有关于输入框的教程?


使用UITextField+UserDefaults就行了
《Xcode9从入门到精通》课程中有单独讲解UITextField和UserDefaults的使用。


22
问题贡献者:晓书
答题大佬:群主/ C
弱弱的问下,storyboard能给控件设置渐变色吗?


给控件绑定一个自定义的view,在自定义view里设置渐变层。


23
问题贡献者:김위청
答题大佬:群主/ appleMan
请问一下 这是我的页面代码 member是 会员变量 我想请问  我这个会员的变量怎么设置 才能在另外一个页面上修改 这个页面的变量一样可以更新呀
现在是 我在别的页面更新会员变量在这里也不起效


用通知试下


通知? 怎么试呀?


用通知,或者将MypageController对象作为另一个页面的属性,记得使用weak关键词
可以参考《Swift4入门实例教程》中的第8章的前面几节课。


24
问题贡献者:无骛
答题大佬:群主/ appleMan
怎样在其中一个cell里添加点击事件,一定要加botton吗?
就是在点击后出现一个文本框描述


添加button或者使用didSelectRowAt代理方法


25
问题贡献者:zhu
答题大佬:群主/73


请问如何实时获取用户的在线状态啊,以及让服务端知道在线人数,和在线状态。要用长链接吗?


你就算用长链接,也需要心跳包来确定啊!

制定策略啊,比如用户5分钟内有请求,就判断为在线
简单的做法:用户调用登陆接口时,服务器记录用户在线状态。心跳就是定个时间间隔向服务器发送请求,说明自己仍然在线。否则不在线,或者调用登出接口也不在线。服务器统计在线状态的用户数量即可。
专业的做法是需要学习一下iOS的XMPP开发,可扩展消息与存在协议,可以在网上找到学习资料。


26
问题贡献者:King
答疑大佬:群主
请教一个问题,有没有逆地理编码的课,我将经纬度转成地址老是出错?
参考《Xcode从入门到精通》第62课:将地理坐标转换成实际地名


27
问题贡献者: Feeling
答题大佬:
问个事,就是FFmpeg这个工具如果集成到ios里面的调用有没有这方面的资料,我是想知道,这样ios写的应用可以直接分割切片吗?
独立的命令直接调用看到有例子写了不少但是集成进工程后怎么调用比较少资料好像

关于FFmpeg的资料比较少哦,这几条资料感觉还可以:
https://blog.csdn.net/leixiaohua1020/article/details/47071547
https://github.com/chrisballinger/FFmpeg-iOS
http://www.cocoachina.com/ios/20150514/11827.html


谢了,里面翻出来,感觉这个是我要找的,代码比较难懂要是swift的多好


28
问题贡献者: 김위청
答题大佬:群主




我这个搜索值是出来了。但是 键盘一直显示 怎么让键盘收回


UISearchBar的键盘收回有这几种方式:
https://blog.csdn.net/lianbaixue/article/details/8218075
https://www.jianshu.com/p/9c7eefbac989
@群主 这个有用swfit 写的吗? 
有的:https://blog.csdn.net/potato512/article/details/52709696
searchbar.resignFirstResponder()  
searchbar.endEditing(true)


self.view endEditing 那什么方法吗
相当于self.view.endEditing(true)
这么看我明白了  


29
问题贡献者:zhu
答题大佬:群主
群主大大,没有做过经纬度轨迹纠偏的算法呀,高德自带的只支持驾车的环境,网上也看了一些,群主有没有呀,分享一下哇 


网上有关于百度地图和高德地图的纠偏资料,请参考:
https://blog.csdn.net/louyxlovess/article/details/53379556
http://www.cnblogs.com/milkmap/p/3627940.html
https://blog.csdn.net/gatr/article/details/9569189


30问题贡献者: 诚绅
答题大佬:群主
@酷课堂 Swift项目,首次编译时间8分钟左右。编译时间可以缩短吗?


首次编译时间8分钟是有些长了,编译时间是由项目内容的多少和机器的配置决定的,如果项目内容无法删减,就只能升级机器配置了。
MacBook Pro2015款的(另外,我同事MacBook Pro是17款的,编译的时间也和我差不多)
除了删减内容还有其他办法吗?


还有一些技巧可以参考:
https://juejin.im/post/5ad33a086fb9a028cf32ebe1


因为这是二次开发项目,删减代码和优化代码工作量都比较大,不可行。其他全模块优化什么的都做了。编译时间还是那样。Objective-C项目的编译时间就很短呀!


Swift 编译器在保证运行时安全方面做的挺好,但是它的编译时间要比 Objective-C 编译时间长很多。Swift的类型推断和重载等新特性,都会消耗更多的编译时间。在不优化代码的情况下,目前貌似没有比较好的编译时间优化方案。随着Swift版本升级,希望能够提高它的编译效率吧。






分享一些实用小技巧:
1.uisearbar隐藏键盘,可以参考:
https://blog.csdn.net/lianbaixue/article/details/8218075
https://www.jianshu.com/p/9c7eefbac989


2. Xcode9.0写Swift的CGRect怎么那么难?
CGRect(x: x, y:y, width:w, height:h),括号里面的参数名还要一个个敲出来
输入CGRect(,然后Xcode会弹出提示,在提示列表中选择CGRect模板就可以了。


非常感谢,原来还可以这样操作,昨天找了半天没弄出来,直接封装成一个忽略显示参数的方法了。


3. 上传App Store被拒绝(用prefs:root,使App跳转至设置界面)。以前上传都没影响,这次突然不行了,咨询各位大神有替代方案没?



这里有解决方案https://community.apicloud.com/bbs/thread-89207-1-1.html




更多资讯:
1.程序员面试中,有些问题要这样答
https://www.jianshu.com/p/64c4af868137 


2.眼巴巴的WWDC2018愿望清单http://coolketang.com/staticIOS/5b00d13c9f54540044d1ed4e.html


3.如何做一个优雅的程序员
http://coolketang.com/staticIOS/5afe244ca22b9d0044a116c7.html 


4.2018 iOS 面试法宝+绝密文件http://coolketang.com/staticIOS/5aa717b89f545400455f3180.html 


5.开发者将《午夜凶铃》与 ARKit 结合,把贞子带到你面前
http://coolketang.com/staticIOS/5a8f82bbac502e0032ba7516.html 


6.UDP只能发送,接收不会写,这里有很多UDP相关的开源项目:
https://github.com/matzpersson/swift-udp
https://github.com/search?utf8=%E2%9C%93&q=swift+udp&type=




以上内容由@小课001爬楼整理,希望小伙伴的这些提问,对你有帮助/启发,感谢资源贡献者:Mi~/appleMan/赖着/蒋哥
精选在此,喜欢请收藏,给答题的各位大佬点赞!


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



阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页