1. 程式人生 > >咱們的課程裡,有微信的這種選單示例嗎?---酷課堂iOS交流群問答整理(201810期)

咱們的課程裡,有微信的這種選單示例嗎?---酷課堂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的時候,你有遇到什麼困難?歡迎評論區留言/吐槽