原创 Go2Shell使用技巧

Go2Shell 一個可以快速在當前目錄打開Shell的工具,小巧,非常好用! 但是它默認打開是系統的iterm,而我希望它打開iTerm2!~ 設置默認iterm 而Go2Shell默認沒有設置界面,需要用命令行打開(隱藏得真深啊!)

原创 iOS 音頻學習邊錄音邊轉碼AVCaptureSession

這種方法用來錄音相對比較少, 主要是用來錄視頻的多一些, 不過也是一種方法, 所以就說一下,主要的難點也是在AudioBooxTool這個框架, 用起來不是很熟。 1.錄製聲音 利用AVCaptureSession來錄音, 這部分是屬

原创 回溯法枚舉,輸入任意整數N,返回由相同數字組成的大於該整數N的最小整數

輸入任意整數N,返回由相同數字組成的大於該整數N的最小整數, 比如,輸入15432 ,輸出 21345. 剛開始拿到這個題很懵,沒有什麼思路 , 最小的肯定是這些數字升序 -> 12345 , 最大的是這些數字降序排列 ->54321 ,

原创 iOS開發中的各種權限獲取和檢查

寫在前面 APP開發避免不開系統權限的問題,如何在APP以更加友好的方式向用戶展示系統權限,似乎也是開發過程中值得深思的一件事; 那如何提高APP獲取iOS系統權限的通過率呢?有以下幾種方式: 1.在用戶打開APP時就向用戶請求權

原创 ios屬性同時重寫set/get方法報錯

使用property的時候,同時重寫set get方法會報錯,如 @interface ViewController : UIViewController @property (nonatomic, copy) NSString *n

原创 其他場景的UML圖

UML(Unified Modeling Language)是一種統一建模語言,爲面向對象開發系統的產品進行說明、可視化、和編制文檔的一種標準語言。下面將對UML的九種圖+包圖的基本概念進行介紹以及各個圖的使用場景。 想要知道UML更多內

原创 iOS 使用TestFlight公鏈測試、內測升級

如何使用TestFlight公鏈發佈內測版本進行測試 TestFlight公鏈 通過公開鏈接添加外測人員,無需收集用戶信息 用戶點擊公開鏈接後如果下載了TestFlight則直接調起TestFlight,點擊安裝即可安裝App進行測試,如

原创 基於響應鏈的ResponderChain的交互方式

前言 傳統iOS的對象間交互模式就那麼幾種:直接property傳值、delegate、KVO、block、protocol、多態、Target-Action。但是有一天我在跟同事小龍結對編程的時候,他向我介紹了一個全新的交互方式:基於R

原创 XCode同一Project下創建多個target

一:項目背景   在實際開發過程中難免會遇到同一個項目要發多個版本來服務於業務的需求,而兩個版本僅有微小的不同. 比如我們要發的版本有: 1.測試版(給測試組,用於上線前測試) 2.線上版(給測試組,用於測試後端上線後對前端的影響) 當然

原创 Xcode一個項目中建立多個工程

Xcode裏面是可以同時存在多個工程的。可以通過存放在同一個工作空間來實現同一個Xcode頁面存在多個工程,也就是有多個xcodeproj。如下圖所示。 在Xcode頁面中管理3個工程 這樣不僅可以方便管理幾個相似功能的工程,更重要的是

原创 查找是否包含同源異構子串

    //給定長度爲m的字符串s1,以及一個長度爲n的字符串str    //問能否在str中找到一個長度爲m的連續子串使得這個子串剛好由s1的m個字符組成,順序無所謂,返回任意滿足條件的一個子串的起始位置 第一種思路,比較常規的,時間

原创 公鑰/私鑰與數字證書原理

1、基礎知識     這部分內容主要解釋一些概念和術語,最好是先理解這部分內容。 1.1、公鑰密碼體制(public-key cryptography)     公鑰密碼體制分爲三個部分,公鑰、私鑰、加密解密算法,它的加密解密過程如下:

原创 理解 ARC 實現原理

ARC 是 iOS 中管理引用計數的技術,幫助 iOS 實現垃圾自動回收,具體實現的原理是由編譯器進行管理的,同時運行時庫協助編譯器輔助完成。主要涉及到 Clang (LLVM 編譯器) 和 objc4 運行時庫。 本文主要內容由修飾符

原创 使用窮舉法計算24點

     24點遊戲是一種益智遊戲,24點是把4個整數(一般是正整數)通過加減乘除以及括號運算,使最後的計算結果是24的一個數學遊戲. 平時我也經常這樣玩這個遊戲,經常是在算出一個結果之後就結束了,後來就在想, 有的題目結果只有一個 ,但

原创 iOS GCD中控制最大併發數

一、概述 在GCD中有兩種隊列,分別是串行隊列和併發隊列。在串行隊列中,同一時間只有一個任務在執行,不能充分利用多核 CPU 的資源,效率較低。 併發隊列可以分配多個線程,同時處理不同的任務;效率雖然提升了,但是多線程的併發是用時間片輪轉