酷课堂iOS交流群,聚集了一群热爱技术、有趣、有料,平均Q龄在10年以上的“老司机”,他们遍布在全国/球各地,有知名企业iOS工程师、高校大学生、自由职业者……如果你也是这样的人,欢迎加入我们,一起畅聊iOS技术及周边。
每晚11点后熄灯(禁言),只聊技术,几乎不闲聊。
IT从业者自学成功的不少,但从入门到放弃的人更多。一个人走的快,一群人走的远,希望你会是坚持到最后的那一波,希望我们可以一起相伴走的更远一些。
(额外福利,不承诺永久提供!)
1.为了更好的交流,我们开设了QQ群
2.已购买课程的同学,请添加小课微信号:coolketang001、QQ:3068527144
3.截图订单号,即可获取对应QQ群号,及免费练习源码。
(苹果商店的订单号,可在购买账号绑定的邮箱中找到)
1、请问,api链接的时候用ip链接的话可以,但是用网址链接的话,无法链接是什么问题呀?是不是没转过来啊?(网址可以正常访问)
答题大佬:群主、猫有九条命
问题贡献者:猫有九条命
建议下载switch host试试,或者自己另外配一下。
2、有个问题请教,我用代码生成数量不定的同一类views添加到superView 中 想用代码控制他们之间间距 而且能自动换行 ,请问该怎么写呢?
答题大佬:群主
问题贡献者: xiangge
群主:
通过循环语句,当一行view的总宽度接近屏蔽宽度时,跳转到下一行排列,不过需要知道view的宽度,并且高度最好是一样的。
xiangge:
目前就是这么写的,但是感觉有点不清楚。
群主:
每个view宽度和高度应该是知道的,换下一行时,加上上一行最高的那个view的高度比较简单一些。
Xiangge:
在网上搜到,可以用代码生成约束constraint添加到视图上。问题是我知道superview是父视图,请问该如何表示同一级别的兄弟视图呢?
群主:
用superview.subviews获得兄弟视图,每个subview拥有一个不同的tag。
Xiangge:
好的,多谢。
3、请问这个问题有什么号的解决方法吗?
Pushing the same view controller instance more than once is not supported
答题大佬:群主、appleMan
问题贡献者:appleMan
群主试试初始化一个新的,或者复制一个新的controller的实例,然后再push。
appleMan:
好的,一会儿试试。
试了,还是有点问题,怎么破?
群主:
参考
https://www.crifan.com/swift_showviewcontroller_error_pushing_the_same_view_controller_instance_more_that_once_is_not_supported/
https://www.bbsmax.com/A/qVdeYVBrdP/
appleMan:
恩恩,我看了下,我的问题不是出在vc,而是出在导航了
因为我的vc层外面包了一层NSObject的单利模式,将外层vc的导航赋值到单利层里面的vc作为跳转,当外层的导航指针变的时候,我单利里面的导航指针指向的是第一次赋值的那个指针,所以就会出现这样的问题
解决方法是,在单利里面要拿到最新的导航指针即可。
(哎呦,这位同学通过老师的提示,已经自己解答了问题,棒棒哒~)
4.用retain声明nssString,但是实际上 没有对selfString的内存进行改变,怎么破?
答题大佬:炒菜要放辣椒
问题贡献者:猫有九条命
猫有九条命:
我看看内存地址,网上是这么说的NSString用copy而不用retain,是因为在用retain时候会改变原来的内存内容。
可是实测用retain和copy是一样的。用retain不管是直接赋值还是用copy都是得到一个新的内存。有人知道为什么不?
炒菜要放辣椒:
建议你试试,打印地址,不要打印结果
猫有九条命:
%p 是地址吧
炒菜要放辣椒:
地址是不是不一样了 ?
猫有九条命:
按照网上说的用retain就应该是一样的啊
retain 持有对象
炒菜要放辣椒:
Nsstring,copy可以理解成长亮赋值常量
你不能把string当成array
猫有九条命:
那NSString用retain和copy区别在哪?
炒菜要放辣椒:
百度一下,然后你再看看
bl值或者intger值,你用什么修身? “Assign” copy“retain”,百度区分一下,在调成手动内存管理,看一下“weak”和“retain”
自动里面的“strong”
猫有九条命:
好的,谢了老铁!
炒菜要放辣椒:
百度把这些看看,然后在回顾一下你的string是直接赋值的,不是用的alloc或者new出来的,把浅拷贝深拷贝在看一下,基本就清楚了。
5、求,下载的源代码直接编译出错,怎么处理?
答题大佬:群主
问题贡献者:温和从容
群主:
这些是警告不是错误哦~
不影响程序的运行,不过多谢反馈下个版本会尽量将警告给清除掉。
温和从容:
好的,谢谢!
6、老铁们,这个问题有没有人遇到过?
To resolve this issue, please revise your screenshots to ensure that they accurately reflect the app in use on the supported devices. For iPhone, you need a set of 5.5-inch display screenshots and for iPad, you need a set for 12.9-inch display. This set will be scaled appropriately down to other device sizes when viewed on the App Store in each territory.
Note that 5.8-inch display assets for iPhone X are optional and don't scale down to other devices sizes. Screenshots that include iPhone X layout features like rounded corners or sensor housing should only be used for the 5.8-inch display.
答题大佬:群主
问题贡献者:猫有九条命
To resolve this issue, please revise your screenshots to ensure that they accurately reflect the app in use on the supported devices. For iPhone, you need a set of 5.5-inch display screenshots and for iPad, you need a set for 12.9-inch display. This set will be scaled appropriately down to other device sizes when viewed on the App Store in each territory
群主:
你设置iPad图片的分辨率为2048*2732,其它iPad分辨率设置为跟随这个尺寸即可了。为iPhone X准备的截图是可选的。
猫有九条命:
iphoneX的截图不放行不行,我们的应用不支持ipad,但是审核时候第一次给我打回来一个ipad的白屏。我把这里设置成universal就好了,结果现在又要ipad的图。(加入组织,手把手带你走出各种莫名其妙的“坑”)
群主:
iphoneX的截图可以不放,但是不支持iPad,app也需要在iPad上运行,这样app是以960*640的分辨率运行在iPad上的,所以也是需要在iPad上进行测试的。
如果设置成universal则需要iPad的图。
ipad截图尺寸有三种,我一般使用2048*2732,其它按比例自动缩放。
你需要检查下app程序,应该是app的问题。
猫有九条命:
理解了,app上架appstore被拒多次会不会有影响。
群主:
不会的
猫有九条命:
好的,谢谢!(祝贺这位小伙伴成功上架了,自己的第一款APP)
7、这三个我push 到另外一个控制器的时候, 视频一直播放 ,
我怎么 deinit掉这些控制?
答题大佬:群主
在push新的控制器之后,前面的控制器中的资源仍在内存中,需要push前面调用player的pause和setRate方法。
参考https://www.zhihu.com/question/35683280
김위청:
好的,我发下我写的,群主帮我看看,有没有问题。
群主:
我这边也有AVPlayer的实例,晚点测试下是否也有这种问题。
김위청:
@群主,解决了,多谢!
8、这个谁知道怎么解决,我昨天新做的系统忘了咋弄了!
答题大佬:appleMan
问题贡献者:回忆满满
回忆满满:
我从新做了下,程序报错了,等我弄个空项目打包试试。
重做系统太麻烦了,一下出了好多问题。
Windows双系统,把两个系统都弄蹦了,开机就自动关机。
重新做证书,Xcode重启下就好了。
9、请问,我在使用autolayout布局的时候 左右两侧多出20像素的margin是哪来的?
答题大佬;群主
问题贡献者:难以忘怀
它的父view的layoutmargin和directionmargin都是0,并且preservessuperviewlayoutmargins也是false
群主 :
是用storyboard中的约束实现autolayout布局的吗
难以忘怀 :
有大佬知道为什么吗,不是,代码手写
子view的lead tail top bottom都等于父view的layoutmarginguide的对应属性
10、@群主 ,请教一下swift如何导入第三方下载的字体字体
答疑大佬:群主
问题贡献者:新手
群主:
参考https://blog.csdn.net/lwjok2007/article/details/48180049
info.plist需要添加字体名称
好的,谢谢群主,问题已解决。
11、请问第三方地图,支持全球的地图有哪些?哪个比较好?
建议使用高德地图
参考https://lbs.amap.com/faq/top/hot-questions/118
12、这算通过审核了么?接下来还有没有什么坑,求大神指点。
答题大佬:群主
问题贡献者:猫有九条命
群主:
这个页面的下方还有发布时间的设定,有自定义发布时间、立即发布等几个选项,你查看一下。
猫有九条命:
好的谢谢,这种情况下一般不会被打回了吧。
群主:
已经审核通过了,一般情况下不会打回的。
猫有九条命:
好的,谢谢!
13、@群主大大, 我上次这个找到原因了!
答题大佬:群主
我用这两个都选择的话 网络获取失败
群主:
直选上面的把下面的删除,网络获取就成功。
김위청:
如果我想两个都能用,有办法吗?
群主:
你弄个https证书试试看。
김위청:
https用http不行吗?
群主:
建议还是使用https,腾讯云和七牛都有免费的证书。
김위청:
明白了,我再试试。
14、哪位大神指导下,苹果自带地图怎么隐藏街道??
答题大佬:appleMan
问题贡献者:风
是隐藏街道还是隐藏街道的名称?
百度地图和高德地图有相关API隐藏街道内容,但是苹果地图需要设置指定的地图类型,才能隐藏街道
map.mapType = MKMapType.satellite
需要隐藏街道名称,甲方要求定位不需要太精确,不能泄漏用户隐私。
苹果地图不也是高德地图么?
苹果地图的数据来自高德,但是并没有提供相关接口。高德的相关接口是这样的:
15、请教个问题呀 就是app上有一数据列表,客户端服务器均无任何缓存,该列表在wifi下能刷新到新数据,在4G下刷新不到(4G环境下其它app都能正常打开),是啥原因啊
答题大佬:群主
问题贡献者:叶舟
群主:
在4g下读取baidu.com 的源码,看下能不能获取到,
如果获取到呢,4G环境下其它app都能正常打开
let url = URL(string: "http://www.baidu.com/
")
let request = URLRequest.init(url: url!, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 30)
NSURLConnection.sendAsynchronousRequest(request, queue: OperationQueue.main, completionHandler: {
(response, data, error) -> Void in
if (error != nil){
print("Network error.")
}
else
{
let str = NSString(data: data!, encoding: 1)
print(str ?? "")
}
})
或者使用Reachability.swift检测下4g下的网络访问状态。
4g下网络访问状态应该正常,因为别的app在4G下都正常 。
16、请教一下,这是什么错误?多次free?
问题贡献者:小明同学
小明同学:
dyld: Library not loaded: @rpath/libswiftAVFoundation.dylib
Referenced from: /var/containers/Bundle/Application/4B039D93-8F0E-42E3-A528-1F733715B704/llb.app/llb
Reason: no suitable image found. Did find:
/private/var/containers/Bundle/Application/4B039D93-8F0E-42E3-A528-1F733715B704/llb.app/Frameworks/libswiftAVFoundation.dylib: code signature invalid for '/private/var/containers/Bundle/Application/4B039D93-8F0E-42E3-A528-1F733715B704/llb.app/Frameworks/libswiftAVFoundation.dylib'
/private/var/containers/Bundle/Application/4B039D93-8F0E-42E3-A528-1F733715B704/llb.app/Frameworks/libswiftAVFoundation.dylib: code signature invalid for '/private/var/containers/Bundle/Application/4B039D93-8F0E-42E3-A528-1F733715B704/llb.app/Frameworks/libswiftAVFoundation.dylib'
/private/var/containers/Bundle/Application/4B039D93-8F0E-42E3-A528-1F733715B704/llb.app/Frameworks/libswiftAVFoundation.dylib: code signature invalid for '/private/var/containers/Bundle/Application/4B039D93-8F0E-42E3-A528-1F733715B704/llb.app/Frameworks/libswiftAVFoundation.dylib'
群主:
这是日志,好像和多次free没关系。
1、换成https链接;
2、更换访问网络接口的方式,iOS中有多种方式访问服务器接口:苹果自身的API,Alamofire等第三方的;
3、可以参考这里的一种方案:http://www.cocoachina.com/bbs/read.php?tid=13398
另外,你那边方便发下代码截图吗,也许能找出原因来。
小明同学:
可是代码编译成功
我不知道哪里出问题了
而且是在原来的电脑上好好运行的
这是换了电脑调试,
代码几万行,不好发截图
群主:
哦这样啊,有可能是证书的问题造成的,
新的电脑可能没有相关证书,参考这个http://www.cnblogs.com/huahua0809/p/5297058.html
小明同学:
好的,谢谢群主,我想应该就是这样子,没错了。
17、swift怎么判断两个Element是同一个?
答题大佬:群主
问题贡献者:平湖秋柯
群主:
1、设置tag,根据tag判断是否想要的那个界面元素。
2、字符串判断,直接使用==
3、类型判断isKindOfClass
平湖秋柯:
我是想给Array扩展一个方法,这个方法需要判断数组内的元素。是否是重复的,元素类型不定,目前能拿到的元素就是Element类型的。但是找不到这个Element的判断。contains(where: <#T##(Sequence.Element) throws -> Bool#>)函数的参数Sequence.Element和外界传过来的变量element< Sequence.Element > 怎么进行比较,这个没有实现 == 函数
群主:
参考http://www.swiftmi.com/topic/156.html
平湖秋柯:
好的,谢谢群主大大,根据参考,已经实现功能要求 。
18、请问,哪位大神有自定义大头针的地图demo么?
请参考课程《iOS开发从入门到精通》
19、我电脑感染了一种奇怪的病毒,它点中了我的笑穴!
(你是否也有过同样的奇异经历呢?)
资源分享者:appleMa
http://www.cocoachina.com/programmer/20180827/24705.html
最近ios12测试本更新有点频繁,这都11个测试版了,
测试版本的数量是有史以来最多的一次,
是嘞,不过我还是当了小白鼠。
20、哪位老铁有遇到过这个问题,怎么解决的?
Pushing the same view controller instance more than once is not supported
答题大佬:appleMa
问题贡献者:李雷
appleMa:
有可能是快速点击造成这个问题的,这里的解决方案比较齐全,
参考https://stackoverflow.com/questions/7083124/pushing-the-same-view-controller-instance-more-than-once-is-not-supported-exce
李雷:
我试着把push的动画设为NO试下,改成NO后貌似没发现问题,我再跟踪下。
21、求,swift怎么使用第三方svprogress呢?
答题大佬:群主
问题贡献者:风
https://github.com/SVProgressHUD/SVProgressHUD
使用桥接的方式
好的,多谢!
22.请问,苹果原声分享时,同样的代码,为什么在另一项目中却不能分享?
答题大佬:appleMa
问题贡献者:风
群主:
这里WeChat必须提供URL分享内容,否则会报错“抱歉,暂时不支持此类型内容的分享”。
参考http://yehuanwen.github.io/2017/01/10/UIActivityViewController-from-start-to-end/
另外建议不要使用相同的分享appID,因为分享appID往往绑定唯一bundleID。
23、Assets.xcassets里的图片可以分享,但是项目或代码里的image不行,请问是什么原因?
答题大佬:群主
问题贡献者:风
群主:
项目中的图片也是可以,甚至网上的图片也是可以的,你看下是不是项目中的图片处于某个子目录下。
风:
在根目录下的图片也试了,不行
暂不知道何时处理方式,还望指点一二
群主:
图片大小是不是太大了,改为32k以内试试。
风:
项目中怎么改大小呢,是通过图形上下文么?
解决了,方式如下:
(感谢分享解题过程,赠人玫瑰,手留余香!)
24、群主大大,分享在iPad上报错,是否和控件有关?
可以参考这个:
https://stackoverflow.com/questions/33942902/uiactivityviewcontroller-crashing-on-ipad-with-sourceview-or-barbuttonitem
(一点小提示:本文中部分问答涉及到具体的项目,这里不做延伸讨论,如果感兴趣,欢迎加入我们一起畅聊iOS技术及相关。)
一些实用小技巧分享:
http://suo.im/4p9CIT
http://url.cn/5rwpffS
http://url.cn/5A3oDW4
http://url.cn/5JrG3PJ
http://url.cn/5z4LXSo
http://url.cn/5EQWPiC
http://url.cn/56qSg7U
http://url.cn/5SC0mIK
http://url.cn/5jBqQuw
https://3g.163.com/tech/article/DPLJLQ7400097U7T.html#adaptation=pc
http://url.cn/5PWwKa3
https://url.cn/54Ymvsk
https://url.cn/5z1BLhQ
https://url.cn/5wfNNTP
金九银十,求职季,分享一波面试题,预祝大家都能如愿!
1.iOS开发笔试题600题:(1000题都有参考答案)
链接: https://pan.baidu.com/s/1pM2O1rP
密码: s79r
2.iOS开发面试题400题:
链接: https://pan.baidu.com/s/1i6DQbGx
密码: 8jnm
3.100家公司近年面试题整理,打造最受企业欢迎的iOS开发者https://www.jianshu.com/p/405a273b960e
付费学员专享福利:
(额外福利,不承诺永久提供!)
1.为了更好的交流,我们开设了QQ群
2.已购买课程的同学,请添加小课微信号:coolketang001、QQ:3068527144
3.截图订单号,即可获取对应QQ群号,及免费练习源码。
(苹果商店的订单号,可在购买账号绑定的邮箱中找到)
联系我们:
网站:coolketang.com
微信公众号:酷课堂
微信:coolketang001
QQ:3068527144