咱們的課程裏,有微信的這種菜單示例嗎?---酷課堂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 李發展”即可找到,投資自己越早越好。

                           

本書內容簡介和適合人羣:

本書包含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賬戶登陸

神奇的海螺:
在哪裏看

羣主:

[Certificates, Identifiers & Profiles > iOS App IDs]

神奇的海螺:
爲什麼我的沒有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<Array<Array<Array<Int>>>>>()

//添加
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的是一個123的立方體。
五維也需要這樣可以任意設置每個維度的數值。
比如
第一維的數值是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的一個123的立方體的每個元素放入一維數組中。對應關係?

(有木有人和小課一樣,對這位程序員小哥哥的數學App感興趣的,評論區告訴我~)

6、咱們的課程裏,有微信的這種菜單示例嗎?

參考這個微信popup示例:http://code.cocoachina.com/view/133636 

7、哪位老鐵知道這個該怎麼改?

蔣哥:

itemArray[indexPath.row]的值是字符串,字符串沒有done屬性,你可以先將itemArray[indexPath.row]的值賦予一個常量,然後檢查一下常量的值和類型。

8、ios 有什麼新的認證嗎?我在之前上架App 的時候沒有被拒絕,現在更新居然被拒絕了,怎麼破?神奇的海螺: 
你申請了定位,但是沒有說明爲什麼要使用地位功能。

羣主:

김위청:

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

羣主:
可能是審覈人員看不懂,你將截圖,以及將截圖文字翻譯成英文和中文之後,將這些申訴材料在後臺提交給審覈人員即可。

김위청:
您指的後臺是這部分?

羣主:
是的,在這裏回覆審覈人員

김위청:
我明白了,謝謝羣主提示,我再試試。

9、升級swift 4.2這個堆棧,爲什麼是空值呢?
羣主:

需要在sendEmail方法的開頭,添加一條提示語句。這是由於用戶尚未在設備上設置郵箱的賬號,一旦設置好了就可以正常運行了。

神奇的海螺:

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》課程中,針對這部分變化,有做說明,可私信小課發給你。)

已根治了這個問題,原因如下:

默認使用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:

噢呦呦:

好的,我試試,非常感謝
能找到了,謝謝

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 那行


。◕‿◕。:

讀它(newvideopath)就是data怎麼讀啊,我是新手,還是自學的,太多不懂了,請大神多多指教。

73:
意思是newVideoPath就是獲取這個視頻文件的地址,至於怎麼讀取,得看你具體用來幹什麼了。例如你想上傳它,最好是問羣主用什麼來上傳最適合新手。

羣主:

推薦用lamofire就可以傳視頻 。

23、碰到一個問題。網上找到答案,但不知道該怎麼改。麻煩大家幫我看看怎麼回事。謝了!

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個技巧中出現的,麻煩大佬們幫忙看看,謝謝!

羣主:

eekDayRow是自定義視圖,需要到GitHub中的Example文件夾中下載。

Joseph:

好的,謝了,Example中不報錯,但我的項目中還是報錯。
我把CustomCells.swift拷貝進去就好了,還有一個bug。

全搞定了。哈哈哈。

原來是還有個FloatLabelTextField.swift也要拷貝進去。

 

一個人的知識面有限,大家一起討論才能碰撞出更多的火花

27、我的編譯沒通過,一共是兩個問題,找不到好的解決方法,麻煩羣主幫我看看,謝謝!

第二章有很大一部分是講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的時候,你有遇到什麼困難?歡迎評論區留言/吐槽

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章