1. 程式人生 > >在經歷了6個月的學習後,我終於上架了自己的第一款APP---酷課堂iOS群問答精華整理(201807

在經歷了6個月的學習後,我終於上架了自己的第一款APP---酷課堂iOS群問答精華整理(201807

酷課堂iOS交流群

我們是一個什麼樣的組織:
酷課堂iOS交流群,聚集了一群熱愛技術、有趣、有料,平均Q齡在10年以上的“老司機”,他們遍佈在全國/球各地,有知名企業iOS工程師、高校大學生、自由職業者……如果你也是這樣的人,歡迎加入我們,一起暢聊iOS技術及周邊。

“很乾”
“很佛系”
每晚11點後熄燈(禁言),只聊技術,幾乎不閒聊。

IT從業者自學成功的不少,但從入門到放棄的人更多。一個人走的快,一群人走的遠,希望你會是堅持到最後的那一波,希望我們可以一起相伴走的更遠一些。

付費學員專享福利:
(額外福利,不承諾永久提供!)

1.為了更好的交流,我們開設了QQ群

2.已購買課程的同學,請新增小課微訊號:coolketang001、QQ:3068527144

3.截圖訂單號,即可獲取對應QQ群號,及免費練習原始碼。

(蘋果商店的訂單號,可在購買賬號繫結的郵箱中找到)

1、請問,我想在其他類裡面設定角標,怎麼拿到UIApplication例項?

答題大佬:群主

問題貢獻者:誠紳

建議如下:

UIApplication.shared.applicationIconBadgeNumber = 1

OK,謝謝!

2、請問,searchbar  cansel 怎麼修改?

答題大佬:群主

問題貢獻者:김위청

建議修改如下:

var cancelButton: UIButton?
var topView: UIView = searchBar.subviews[0] as! UIView
for view in topView.subviews  {            
    if view.isKindOfClass(NSClassFromString("UINavigationButton")){
        cancelButton =  view as? UIButton
    }
}
if (cancelButton != nil) {
    cancelButton?.setTitle("取消", forState: .Normal)      
}

嗯,是的,這位同學已經會自己解答了,棒棒噠~

3、哪位大神給指點下。打包上架出現錯誤。

能具體到是如下兩個類引起的,我把下邊兩個從Compile Sources中移除就不會有問題,截圖和操作如下:

答題大佬:群主、風

問題貢獻者:風

我有試過把那2各類移除,重新新增到專案,還是不行,不知怎麼處理,完全沒思路了。

相關庫也反覆移除添加了,還是沒效果。

@群主 怎麼算是更換呢?移除再新增算麼?

終於解決了,

修改的

Valid Architectures引數。原來是靜態庫不支援armv7指令集。

@群主,請問有沒有製作靜態庫/動態庫的方法介紹 && 注意事項 的相關介紹文件。網上搜了一些,總覺得了解還不全面,謝謝!

靜態庫的製作可以參考,最好手動製作一份。
1、https://blog.csdn.net/sadsadaadsd/article/details/77878279 
2、http://www.it72.com/thread-7956.htm 
3、http://www.cocoachina.com/ios/20150226/11182.html 

4、求助各位大神,有遇到這個問題的嗎?

答題大佬:群主

問題貢獻者:一馬當先

@一馬當先 這個問題可以參考:
https://blog.csdn.net/king457757706/article/details/53024047 
https://www.jianshu.com/p/2b3f58c61d7d 

5、怎麼把一個動圖製作成幀動畫裡的圖片組,求大神指點!

答題大佬:群主、誠紳

問題貢獻者:無騖

需要使用Photoshop之類的軟體

另外SDWebImage 裡面有個方法,可以看一下

6、求助,這裡按鈕大小不生效,不知道什麼問題,升級了swift4 就這樣了,之前swift3不會。返回按鈕圖片的大小設定不了。

答題大佬:群主、炒菜要放辣椒

問題貢獻者:航歡網路-曾

試試這個:
self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "Reture"), style: UIBarButtonItemStyle.plain, target: self, action: #selector(backBtn(_:)))

這裡去掉,你可以檢查一下程式碼的意思.

7、請問如何匯入第三方庫?

答題大佬:群主

問題貢獻者:無騖 

一般有三種方式:
1、直接將庫檔案拖動到專案中
2、使用Cocopods安裝 
3、使用Carthage安裝

8、求問大神這個錯誤大致是什麼意思,我剛剛從GitHub下載Spring-swift4直接拉入進去就出現感嘆號了。

答題大佬:群主

問題貢獻者:無騖

參考:

http://www.cocoachina.com/bbs/read.php?tid=228613 
你需要安裝的是:

https://github.com/MengTo/Spring 這個類庫嗎?

就是這個,直接拖入之後出現問題,
您可以發一個帶有第三方庫的app開發利器的程式嗎,想明白它需要的到底是啥?

app開發神兵利器專案中有Spring課程,也有課程原始碼,你可以參考課程的原始碼。不過課程原始碼是使用Cocopods安裝的

難怪呢

@無騖、 請參考發給你的Demo,你之前匯入的是整個Spring專案,只需要匯入Spring資料夾就行了

好的,thank you !

9、請各位老師指點,寫一個計算機的程式有閃退的情況, 怎麼處理, 是不是我哪裡寫錯了?

答題大佬:群主

問題貢獻者:劉鼕鼕 

你試下發給你的那個demo先,不是用故事版,可以修改為故事版模式。

報錯:故事板中名為king4的key有問題

點選這裡的King4左側的叉,刪掉這個Outlet就行了

好的謝謝,我是剛入坑的小白,多謝群主指點!

10、想問下手機升級到iOS12了,但是想給降到iOS11,這怎麼降級啊!是不是不讓降級了啊?在蘋果網站上沒有搜到。

答題大佬:群主

問題貢獻者:檸檬
試試:

http://iphone.poppur.com/JiaoCheng/7695.html 

11、請老鐵們,幫我看一下,這個現在怎麼寫才好?

答題大佬:群主、appleMan

問題貢獻者:김위청

首先:import UserNotifications
然後:

UNUserNotificationCenter.current().removeAllPendingNotificationRequests()

這個移除角標的方法貌似在ios10上面已經廢棄,更換為群主說的那個方法了,如果要相容低版本,要判斷系統然後呼叫對應的方法即可。

12、求支援,例項中

UILongPressGestureRecognizer.began

 提示began這個屬性不存在 ,怎麼破?

答題大佬:群主

問題貢獻者:選擇1+1
修改為:

if(gusture.state == UIGestureRecognizerState.began)

13、剛入坑iOS小白一枚,請教一個問題,怎麼設一個變數作為計數器,函式執行一次就改變一次呢?

答題大佬:群主

問題貢獻者:噢呦呦br/> @IBAction func selfCheck(_: Any) {
        
        
        var string = selfCheck
        self.sendTextField.stringValue = selfCheck
        if self.shouldAddLineEnding && !string.hasSuffix("\n") {
            string += self.lineEndingString
        }
        if let data = string.hexadecimal() {
            self.serialPort?.send(data)
            var countNumber = 1
        }
    }

最後那個countNumber每次執行以後沒變化。。。

countNumber這個值你寫死了,試下  var countNumber += 1;

能不能等於固定值呢?不同的按鈕返回不同的值,後面要用一個switch迴圈

什麼應用場景?先簡單描述下(手把手帶你一起解決,實際案例中碰到的具體問題)

希望按下每個按鈕以後,能有得到一個計數,比如1.2.3.4,然後根據計數的1.2.3.4,輸出不同的結果。

你是想做計算器的效果?

不是的,按鈕還會輸出一個字元到串列埠,返回值需要不同的方式變換成string或者int型別,所以打算用switch根據計數器,做變換就是要設一個變數,然後按一個按鈕就改變一次變數的值。

比如我按了selfcheck就讓countNumber這個變數變成1。按setUltra:60,countnumber就變成5。
確實和計算器選擇運算子是一樣的操作,多謝提示。

14、老鐵們,這種頁面怎麼寫呢,有沒有思路推薦。

答題大佬:Rocky

問題貢獻者:King 

UITableView+自定義輸入框(輸入框+底部按鈕)僅作參考 我也是小白

是的,用這種思路可以完成這個頁面。
或者參考《神兵利器》教程中的第9章第10節,關於第三方類庫Chatto的使用。

然後自定義幾種UITableViewCell應該齊全了,我的感受是,咱們初學者還是少用框架的好

我去看看,多謝!

15、請問,

我繼承了上面的 controller,想呼叫裡面的 interactor怎麼呼叫,

直接寫 interactor沒有這個值,困惑?

答題大佬:群主

問題貢獻者:김위청

試試寫self.interactor,哦,是用Swift呼叫OC的

對 我是繼承了oc的controller,self不行
@群主,我沒太明白這個。我不可以簡單的呼叫使用嗎?

哦,這是第三方通訊類庫,看到這種用法[super.interactor markRead],你試試super.interactor,如果還不行,將專案打包發來看看

群主好贊 週末還答疑。

16、請問,如何設定UICollectionView 才能產生畫廊的功能,用的swift。

答題大佬:群主

問題貢獻者:清晨
參考:

http://www.cnblogs.com/Free-Thinker/p/7233320.html 

17、問一下, 大家swift歸檔用什麼工具?

答題大佬:群主

問題貢獻者:∑聖?賢々
資料多的話使用fmdb或者CoreData

還有第三方SQLiteSwift和AERecord,參考《神兵利器教程》

(提示:點選文末閱讀原文可找到免費課程下載連結)

18、有沒有OCR拍照識字的教程推薦啊!

答題大佬:群主

問題貢獻者:賴著br/>@賴著/熱心/活躍氣氛 參考百度雲的OCR識別SDK
https://cloud.baidu.com/doc/OCR/OCR-iOS-SDK.html#.E8.BF.9C.E7.A8.8BAPI.E8.83.BD.E5.8A.9B 

19、上架的時候遇到的問題,求指點,這個是什麼錯誤呀?我圖片都按正常的尺寸放的

答題大佬:群主、appleMan

問題貢獻者:김위청

參考:

https://www.jianshu.com/p/7f2ba34de4d8 

注意:(敲黑板,畫重點啦~)

因為你的iTunes Connect狀態是元資料的拒絕,不需要一個新的二進位制。只需要重新100%的 command + S 去模擬器截圖 APP 內容.

@群主 就是說 我得用實際的手機圖片 才可以嗎?

在模擬器中按下Command + S擷取螢幕

我的模擬器很長時間 都不行了,嘗試過很多方案都不行

重新啟動下電腦試試。

@群主。這個圖片我只能用模擬器的圖片嗎?不能我自己設計圖片嗎?

一般情況下不直接使用模擬器圖片也可以,解析度符合要求就行。但是稽核人員既然提出這個問題,你又認為解析度是符合要求的,所以建議使用模擬器截圖圖片。用真機截圖應該也可以。

好,我明白了。非常謝謝! 

20、各位,有木有免費的伺服器可以使用的?

答題大佬:MissLIBRA

問題貢獻者: appleMan
亞馬遜 12個月

怎麼樣,穩定不

日本節點 聯通極為穩定

嗯嗯,我看看,謝謝!

21、searchbar  cansel 怎麼修改?

答題大佬:風

問題貢獻者:風
var cancelButton: UIButton?
var topView: UIView = searchBar.subviews[0] as! UIView
for view in topView.subviews  {            
    if view.isKindOfClass(NSClassFromString("UINavigationButton")){
        cancelButton =  view as? UIButton
    }
}
if (cancelButton != nil) {
    cancelButton?.setTitle("取消", forState: .Normal)      
}

 

22、請問,我想在其他類裡面設定角標,怎麼拿到UIApplication例項

答題大佬:群主

問題貢獻者:誠紳

群主:

UIApplication.shared.applicationIconBadgeNumber = 1

23、求助各位大神,有遇到這個問題的嗎?

答題大佬:群主、appleMan

問題貢獻者:一馬當先

@一馬當先 這個問題可以參考這個:
https://blog.csdn.net/king457757706/article/details/53024047 
https://www.jianshu.com/p/2b3f58c61d7d 

24、這是怎麼回事?我是新手,請大家多多指教,謝謝。

答題大佬:群主

問題貢獻者:吳冠澄

群主:

登入https://developer.apple.com/ 
點選右上角的Account,然後使用你的開發者賬號登入,接著新增測試裝置,並建立測試證書

越來越多小夥伴陸續上架了,自己的第一款APP,祝賀,期待看到更多作品。

25、請問 app 上架成功之後 怎麼獲取我的App 
我現在上架成功之後在app store 上 無法查詢我的App 

答題大佬:群主

問題貢獻者:김위청 

按關鍵字查詢也不行

群主:

https://itunes.apple.com/cn/app/id1063100471 
將id後面的數字更換為你的app的id就可以開啟你的app了。
上架成功要等一兩天才能搜尋到app,因為app要逐漸釋出到蘋果的各個伺服器。

哦,明白了,謝謝!

雖然遇到各種各樣奇葩的問題,但能夠上架自己的APP真的是一件非常有成就感的事情。也很感謝遇到咱們這個有愛的群,各位大神、同學們的幫助和指點!

 

26、請問,這個測試的成功 但是線上的就是token錯誤是什麼問題呀?

答題大佬: 群主、回憶滿滿

問題貢獻者:김위청

我申請證書是,在這裡申請的:

請參考:

http://www.cnblogs.com/Jenaral/p/6283032.html 

@群主 他這裡說的是,pushnotification 關掉,這個關掉 能收到訊息嗎?

作者也這麼講,你測試一下看看: 

27、請問SDWebImage 4.0 是不是預設的圖片載入不支援gif了啊?

答題大佬:誠紳、群主

問題貢獻者:Rocky
SDWebImage 4.0用FLAnimatedImageView通過FLAnimatedImage顯示GIF圖。

SDWebImage 4.0之前,可以用UIImageView顯示GIF圖。如果SDWebImage 4.0還這麼做,只會顯示靜態圖。
參考:

http://www.cnblogs.com/silence-cnblogs/p/6682867.html 

28、請問,為什麼會沒有switchChanged?

答題大佬:群主

問題貢獻者:狄絲 

將方法名稱修改為:

uiSwitch前面補上 _,表示省略方法的預設外部引數名

群主實在太牛x了,非常感謝。

29、@群主 搜尋欄迴歸到原來位置的時候,uisearchController取消事件,怎麼有一點卡頓?

答題大佬:群主

問題貢獻者:King

不是卡頓,是動畫沒有同步。建議通過註釋程式碼的方法,找出是哪些程式碼造成這種問題的。如果是uisearchController自身的問題,那就需要手動實現這個search功能了。

哦,原來是這樣,謝謝!

30、請問,如何實現App向微信的群聊發訊息,類似於微信機器人!

答題大佬:群主

問題貢獻者:shoufby
這個需要確認微信的API文件是否提供了相關的介面。

企業微信API有訊息推送介面

前方預警:這是一條有點長的討論……

31、請問一下關於pod的使用,第一次使用是不是會把所有的源都down下來啊。

答題大佬: 歲月、群主

問題貢獻者:Rocky
群主:

不需要,直接pod install就行了

Rocky:

是這樣使用的,但是,查看了一下.cocoa pods資料夾,好大,一堆資料夾,足有1個g的大小

歲月 :
你的Podfile有多少行

Rocky:
4行

歲月: 
那肯定是你呼叫方法出問題了

Rocky“
就添加了一個SDWebImage,我要重新安裝嗎?

歲月:

你弄錯了,不是這樣用的。

開啟命令列sudo gem install cocoapods

vim Podfile這句用了嗎?(學長附身手把手教的既視感~)

Rocky:

嗯,這個是配置到專案上的

歲月:

再在裡面寫Podfile

Rocky:

然後pod install

歲月:

對的

Rocky:

執行沒問題

歲月:

這樣到時候基本上就可以直接import了
你那個spec 檔案可以移除

Rocky:

我就是不大明白為什麼有那些檔案

歲月:

專案不需要

Rocky:

這個不是專案裡面的

歲月:

好吧

Rocky:

是cocoa pods的預設創作的一個配置路徑下的 建立

歲月:

可以不要了

Rocky:

你確定
歲月 我搜下我的電腦
歲月 你這個檔案在哪找到的
Rocky-  
使用者目錄下 ,開啟隱藏的檔案
歲月  怎麼開啟去了,我忘了,你是怎麼開啟的
Rocky- 終端也能看到的啊
歲月 用命令列 ?
Rocky- 也可以
歲月 ls -all

歲月 
你教我怎麼不用命令列開啟隱藏檔案,應該做不到
Rocky- 這個有選項啊
Rocky- 可以度娘一下吧

歲月:

其實話說回來,既然它不影響專案,何必在意它呢。

Rocky:

這話沒毛病

 

一些實用小技巧分享:

1.WKWebView的15條應用指南:

http://coolketang.com/staticIOS/5b36f765ee920a003a15f20d.html

2.EasyPlayer iOS開源流媒體播放器中AAC解碼PCM問題:

https://blog.csdn.net/xiejiashu/article/details/52433989

3.十年了,App Store 最好玩、最好用的 app 全在這了

http://coolketang.com/staticIOS/5b3ad73a756571003a715362.html

4.Xcode10新內容

http://coolketang.com/staticIOS/5b36fb0cee920a003a161458.html

5.iOS 新功能 快捷指令 試用 -- 可程式設計的工作流

http://coolketang.com/staticIOS/5b42cc00ee920a003bf43cc3.html

6.OCR iOS SDK的安裝和使用

https://cloud.baidu.com/doc/OCR/OCR-iOS-SDK.html#.E8.BF.9C.E7.A8.8BAPI.E8.83.BD.E5.8A.9B

7.iOS一行程式碼監測FPS/記憶體/CPU

http://www.cocoachina.com/ios/20180720/24254.html 

8.這一篇百度 iOS 面試總結轟動整個開發界【頭條熱搜】
https://www.jianshu.com/p/9c9dfa07b9a1 

9.對 iOS app 進行安全加固

http://www.cocoachina.com/ios/20180719/24229.html 

10.Appium自動化—淺談iOS自動化測試環境搭建https://www.jianshu.com/p/c43a94ecca97 

11.Udacity也棄用React Native了 !看看他們使用React Native過程中遇到的問題。

http://www.cocoachina.com/programmer/20180712/24135.html 

12.UIViewController的瘦身計劃(iOS架構思想篇)http://www.cocoachina.com/ios/20180713/24159.html 

13.iOS 11.4.1 正式版釋出!修復 bug 、提升穩定性

http://www.cocoachina.com/apple/20180710/24098.html 

金九銀十,求職季,分享一波面試題,預祝大家都能如願!

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