国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

一個公司設計網(wǎng)站怎么做近三天發(fā)生的大事

一個公司設計網(wǎng)站怎么做,近三天發(fā)生的大事,寶安網(wǎng)站建設定制,網(wǎng)站開發(fā)公司怎么找客戶文章目錄 引子Xcode工程結構核心概念Swift語法速記(TODO)小技巧單元測試中使用awaitSwiftUI中使用ListView中取數(shù)據(jù) 常見問題Xcode添加package時連接github超時Xcode無法修改快捷鍵,一閃而過 引子 鑒于React Native目前版本在iOS上開發(fā)遇到諸多問題,本以…

文章目錄

    • 引子
    • Xcode工程結構核心概念
    • Swift語法速記(TODO)
    • 小技巧
      • 單元測試中使用await
      • SwiftUI中使用List
      • View中取數(shù)據(jù)
    • 常見問題
      • Xcode添加package時連接github超時
      • Xcode無法修改快捷鍵,一閃而過

引子

鑒于React Native目前版本在iOS上開發(fā)遇到諸多問題,本以為搞RN只需理會Javascript開發(fā),沒想到冒出CocoaPod的一堆編譯問題。所以橫下一條心,決定直接進攻iOS本身。不管你是用React Native,還是用Flutter,iOS下的直接編程Swift或OC都是繞不過去的坎。

Xcode比Android Studio要香,模擬器運行快,當然配置更復雜。

十年前的2014年,蘋果發(fā)布了Swift , 五年后的2019年,又發(fā)布SwiftUI。從此iOS開發(fā)的面貌煥然一新。

Swift 的最新版本是Swift 5.5,該版本于2021 年9 月發(fā)布。

SwiftUI 是Apple 開發(fā)的一種UI 框架,它首次在iOS 13 中引入,支持iOS、iPadOS、macOS、watchOS 和tvOS 等Apple 平臺。 當前最新版本的SwiftUI 是在Xcode 13 中引入的SwiftUI 3.0。

Xcode工程結構核心概念

每一門編程語言都會有namespace, module, package這些基本概念,但定義上都存在一些差異。這些差異會影響到加載和相互調用關系。所以,學習一門編程語言,首要是弄清楚這些基本概念是如何定義的。

Xcode里有兩個概念和其它開發(fā)工具不同,一個叫Schema,一個叫Target。Schema可以理解為解決方案,一個Schema可以對應不同的Target,生成物也不同。

  • Project和Workspace
  • Package:包是Swift Package Manager的概念,不是Swift語言的概念,包的根目錄下需要存在一個Package.swift描述文件
  • Target: 通常也被稱為build target,也就是構建的目標
    • 在創(chuàng)建項目的時候默認就會創(chuàng)建一個target,有時被稱為主target
    • 一個工程里可以創(chuàng)建多個target,每個target都對應相應的模板
    • 一個包里可以有一個或多個target,也就是一個target列表。
    • 一個target是一個app bundle 或 framework。每個target構建后對應一個庫或一個可執(zhí)行文件作為product。
    • target之間存在依賴關系,可以在Xcode里定義某個target依賴哪些其它target
  • Module:很多編程語言里一個文件對應一個module,但Swift不是。
    • 模塊是代碼的集合,對應一個或多個文件,里面定義Swift的 類、函數(shù)等
    • 一個模塊對應一個發(fā)布單元
    • 一個module就可以看成是一個project中的一個target,這個target的默認模塊名稱就是這個項目的名稱(可以在target的Build Settings—Product Module Name配置)
    • 在同一個模塊中所有的Swift類處于同一個命名空間,它們之間不需要導入就可以相互訪問
  • namespace: 一個class或一個struct就定義一個namespace,或者說一個{}就對應一個namespace
    • Swift有命名空間,而Objective-C沒有。
    • Swift并沒有namespace這個關鍵字
  • Bundle:Xcode 工程項目本身就是在一個 Bundle 之下,開發(fā)者可以使用 Bundle.main 來獲取其中的資源
  • Library 和 Framework:

Modules: Swift organizes code into modules. Each module specifies a namespace and enforces access controls on which parts of that code can be used outside of the module.
A program may have all of its code in a single module, or it may import other modules as dependencies. Aside from the handful of system-provided modules, such as Darwin on macOS or Glibc on Linux, most dependencies require code to be downloaded and built in order to be used.
When you use a separate module for code that solves a particular problem, that code can be reused in other situations. For example, a module that provides functionality for making network requests can be shared between a photo sharing app and a weather app. Using modules lets you build on top of other developers’ code rather than reimplementing the same functionality yourself.

Packages: A package consists of Swift source files and a manifest file. The manifest file, called Package.swift, defines the package’s name and its contents using the PackageDescription module.
A package has one or more targets. Each target specifies a product and may declare one or more dependencies.

namespace與文件名和路徑無關,只與模塊名有關。這一點不同于Java和Python。在Xcode中,創(chuàng)建group和folder是有區(qū)別的,group參與編譯,創(chuàng)建group可以選擇不創(chuàng)建folder,folder下文件不參與編譯。folder是藍色的,它是以文件夾的形式存在;group是黃色的,它是以分組的概念存在。

Swift工程結構示例:
在這里插入圖片描述不管你是Run,還是Build,首先要明確你是針對哪個Schema。如下,你要選擇對應的Schema才行。
在這里插入圖片描述

創(chuàng)建了兩個Target,其中一個是Unit Test,依賴主target。
在這里插入圖片描述
在這里插入圖片描述

Swift語法速記(TODO)

每一門編程語言都喜歡用不同的方式做和別人相同的事情。不知道這是故意標新立異,還是真的有某種道理,難道設計者不知道Java和C的語言風格已經成了大眾的習慣嗎?對于程序員來說只能選擇接受。例如定義函數(shù)的關鍵字就有def, func, function等,Swift也不例外,也搞了一套自己的語法糖。

  • 常量用let,變量用var
  • 函數(shù)參數(shù)有標簽,有名稱,返回類型用箭頭,傳參需帶參數(shù)名,要吐:-)
  • 字符串可以用單引號或雙引號,多行字符串用三個單引號或三個雙引號
  • 數(shù)組、Set、字典都是用中括號定義,都可以用for-in遍歷
var shoppingList: [String] = ["Eggs", "Milk"] //數(shù)組
var favoriteGenres: Set<String> = ["Rock", "Classical", "Hip hop"] // 集合
var airports: [String: String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"] // 字典
  • as, as?, as!的區(qū)別:as向上轉,as!向下轉。不確定向下轉型可以成功時,用類型轉換的條件形式(as?),只有你可以確定向下轉型一定會成功時,才使用強制形式(as!)
  • ??左邊為nil的時候,取右邊
  • 擴展: 擴展可以給一個現(xiàn)有的類,結構體,枚舉,還有協(xié)議添加新的功能。類似與Javascript的原型機制
  • 協(xié)議:類似于Java的接口
  • subscript:用來索引對象。下標可以定義在類、結構體和枚舉中,是訪問集合、列表或序列中元素的快捷方式。
  • guard, if…else, if let用法的區(qū)別
  • ForEach需要item符合 Identifiable協(xié)議,如 ForEach(items, id: .pageId){}
  • mutating關鍵字
  • any和some:any 吾不知其為何物也,some 吾知其為何物,但不知道其具體實例

小技巧

單元測試中使用await

func testImageFetching() async throws {let (data, _) = try await URLSession.shared.data(from: url)
}

SwiftUI中使用List

List {ForEach(items, id: \.id) { item inText(item.name)}
}

View中取數(shù)據(jù)

.task is iOS 15+, so could go back to .onAppear if you need iOS 13+.

常見問題

Xcode添加package時連接github超時

由于Xcode不能直接設置代理,所以穩(wěn)妥方式是手工下載github代碼,再添加時選Local:
在這里插入圖片描述刷新幾把Xcode,有時需要關閉項目或關閉Xcode再重啟,然后給target添加上對這些包的依賴即可:
在這里插入圖片描述
官方給的解決方案是:

On the terminal xcodebuild -scmProvider system -resolvePackageDependencies -disablePackageRepositoryCache -workspace MyProject.xcworkspace -scheme MyScheme

On XCode after the xcodebuild finishes XCode - File - Packages - Resolve Package Versions.

Xcode無法修改快捷鍵,一閃而過

輸入法改成自帶的英文,不要用搜狗

http://aloenet.com.cn/news/41411.html

相關文章:

  • 網(wǎng)站建設最新教程網(wǎng)絡營銷外包收費
  • 網(wǎng)站優(yōu)化三要素視頻推廣平臺
  • 小程序 網(wǎng)站 開發(fā)廈門百度推廣開戶
  • 深圳建站推廣公司b站視頻推廣網(wǎng)站
  • 河南省建設監(jiān)理協(xié)會網(wǎng)站網(wǎng)站推廣的途徑和方法
  • 著名的國外設計網(wǎng)站廣州優(yōu)化防控措施
  • 網(wǎng)站開發(fā)如何讓圖片加載的更快第一推廣網(wǎng)
  • 做網(wǎng)站對客戶有什么幫助外包網(wǎng)絡推廣公司
  • wap網(wǎng)站適配競價托管外包
  • 微信小程序是免費的嗎seo工程師是什么職業(yè)
  • 怎么用網(wǎng)站后臺做輪播圖打開百度網(wǎng)站
  • 廣州哪家做網(wǎng)站價格好百度熱搜榜排名
  • 六安網(wǎng)站推廣獲客app第一接單網(wǎng)app地推和拉新
  • wex5 wordpressseo整站優(yōu)化公司持續(xù)監(jiān)控
  • 專業(yè)網(wǎng)站設計服務seo關鍵字優(yōu)化軟件
  • 企業(yè)網(wǎng)站做seo輿情報告范文
  • 寧波北侖網(wǎng)站建設上海seo外包
  • 建網(wǎng)站域名注冊后需要網(wǎng)絡營銷所學課程
  • 專業(yè)做域名的網(wǎng)站線上營銷平臺
  • 張家港網(wǎng)站建設門店推廣下載app賺錢
  • 武漢企業(yè)做網(wǎng)站找哪家好收錄排名好的發(fā)帖網(wǎng)站
  • 清河做網(wǎng)站哪家好怎么請專業(yè)拓客團隊
  • 網(wǎng)站開發(fā)員鄭州seo培訓班
  • 做網(wǎng)站哪家公司比較好網(wǎng)站流量排行
  • 武漢做商城網(wǎng)站建設寧波seo排名優(yōu)化哪家好
  • 廣州網(wǎng)站關鍵詞排名鄭州網(wǎng)站關鍵詞排名技術代理
  • 緊抓政府網(wǎng)站集約化建設免費網(wǎng)站注冊com
  • dede古典網(wǎng)站模板什么關鍵詞能搜到資源
  • 怎樣做網(wǎng)站首頁圖片變換網(wǎng)店營銷策劃方案
  • 上海 網(wǎng)站建設 500強關鍵詞搜索優(yōu)化外包