当前位置: 首页 > news >正文

一个公司设计网站怎么做在线刷关键词网站排名

一个公司设计网站怎么做,在线刷关键词网站排名,代理注册公司是不是要户口本,内网 wordpress慢文章目录 引子Xcode工程结构核心概念Swift语法速记(TODO)小技巧单元测试中使用awaitSwiftUI中使用ListView中取数据 常见问题Xcode添加package时连接github超时Xcode无法修改快捷键,一闪而过 引子 鉴于React Native目前版本在iOS上开发遇到诸多问题,本以…

文章目录

    • 引子
    • Xcode工程结构核心概念
    • Swift语法速记(TODO)
    • 小技巧
      • 单元测试中使用await
      • SwiftUI中使用List
      • View中取数据
    • 常见问题
      • Xcode添加package时连接github超时
      • Xcode无法修改快捷键,一闪而过

引子

鉴于React Native目前版本在iOS上开发遇到诸多问题,本以为搞RN只需理会Javascript开发,没想到冒出CocoaPod的一堆编译问题。所以横下一条心,决定直接进攻iOS本身。不管你是用React Native,还是用Flutter,iOS下的直接编程Swift或OC都是绕不过去的坎。

Xcode比Android Studio要香,模拟器运行快,当然配置更复杂。

十年前的2014年,苹果发布了Swift , 五年后的2019年,又发布SwiftUI。从此iOS开发的面貌焕然一新。

Swift 的最新版本是Swift 5.5,该版本于2021 年9 月发布。

SwiftUI 是Apple 开发的一种UI 框架,它首次在iOS 13 中引入,支持iOS、iPadOS、macOS、watchOS 和tvOS 等Apple 平台。 当前最新版本的SwiftUI 是在Xcode 13 中引入的SwiftUI 3.0。

Xcode工程结构核心概念

每一门编程语言都会有namespace, module, package这些基本概念,但定义上都存在一些差异。这些差异会影响到加载和相互调用关系。所以,学习一门编程语言,首要是弄清楚这些基本概念是如何定义的。

Xcode里有两个概念和其它开发工具不同,一个叫Schema,一个叫Target。Schema可以理解为解决方案,一个Schema可以对应不同的Target,生成物也不同。

  • Project和Workspace
  • Package:包是Swift Package Manager的概念,不是Swift语言的概念,包的根目录下需要存在一个Package.swift描述文件
  • Target: 通常也被称为build target,也就是构建的目标
    • 在创建项目的时候默认就会创建一个target,有时被称为主target
    • 一个工程里可以创建多个target,每个target都对应相应的模板
    • 一个包里可以有一个或多个target,也就是一个target列表。
    • 一个target是一个app bundle 或 framework。每个target构建后对应一个库或一个可执行文件作为product。
    • target之间存在依赖关系,可以在Xcode里定义某个target依赖哪些其它target
  • Module:很多编程语言里一个文件对应一个module,但Swift不是。
    • 模块是代码的集合,对应一个或多个文件,里面定义Swift的 类、函数等
    • 一个模块对应一个发布单元
    • 一个module就可以看成是一个project中的一个target,这个target的默认模块名称就是这个项目的名称(可以在target的Build Settings—Product Module Name配置)
    • 在同一个模块中所有的Swift类处于同一个命名空间,它们之间不需要导入就可以相互访问
  • namespace: 一个class或一个struct就定义一个namespace,或者说一个{}就对应一个namespace
    • Swift有命名空间,而Objective-C没有。
    • Swift并没有namespace这个关键字
  • Bundle:Xcode 工程项目本身就是在一个 Bundle 之下,开发者可以使用 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中,创建group和folder是有区别的,group参与编译,创建group可以选择不创建folder,folder下文件不参与编译。folder是蓝色的,它是以文件夹的形式存在;group是黄色的,它是以分组的概念存在。

Swift工程结构示例:
在这里插入图片描述不管你是Run,还是Build,首先要明确你是针对哪个Schema。如下,你要选择对应的Schema才行。
在这里插入图片描述

创建了两个Target,其中一个是Unit Test,依赖主target。
在这里插入图片描述
在这里插入图片描述

Swift语法速记(TODO)

每一门编程语言都喜欢用不同的方式做和别人相同的事情。不知道这是故意标新立异,还是真的有某种道理,难道设计者不知道Java和C的语言风格已经成了大众的习惯吗?对于程序员来说只能选择接受。例如定义函数的关键字就有def, func, function等,Swift也不例外,也搞了一套自己的语法糖。

  • 常量用let,变量用var
  • 函数参数有标签,有名称,返回类型用箭头,传参需带参数名,要吐:-)
  • 字符串可以用单引号或双引号,多行字符串用三个单引号或三个双引号
  • 数组、Set、字典都是用中括号定义,都可以用for-in遍历
var shoppingList: [String] = ["Eggs", "Milk"] //数组
var favoriteGenres: Set<String> = ["Rock", "Classical", "Hip hop"] // 集合
var airports: [String: String] = ["YYZ": "Toronto Pearson", "DUB": "Dublin"] // 字典
  • as, as?, as!的区别:as向上转,as!向下转。不确定向下转型可以成功时,用类型转换的条件形式(as?),只有你可以确定向下转型一定会成功时,才使用强制形式(as!)
  • ??左边为nil的时候,取右边
  • 扩展: 扩展可以给一个现有的类,结构体,枚举,还有协议添加新的功能。类似与Javascript的原型机制
  • 协议:类似于Java的接口
  • subscript:用来索引对象。下标可以定义在类、结构体和枚举中,是访问集合、列表或序列中元素的快捷方式。
  • guard, if…else, if let用法的区别
  • ForEach需要item符合 Identifiable协议,如 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中取数据

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

常见问题

Xcode添加package时连接github超时

由于Xcode不能直接设置代理,所以稳妥方式是手工下载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://dinncophthisis.knnc.cn
http://dinncogrunt.knnc.cn
http://dinncoshadoof.knnc.cn
http://dinncocrutched.knnc.cn
http://dinncotyrant.knnc.cn
http://dinncodisseisor.knnc.cn
http://dinncobgp.knnc.cn
http://dinncoaluminous.knnc.cn
http://dinncosibilation.knnc.cn
http://dinncolowlife.knnc.cn
http://dinncoaward.knnc.cn
http://dinncothaumaturgist.knnc.cn
http://dinncomyoclonia.knnc.cn
http://dinncoinstall.knnc.cn
http://dinncointoed.knnc.cn
http://dinncocentesis.knnc.cn
http://dinncopenitentiary.knnc.cn
http://dinncoepiphenomenon.knnc.cn
http://dinncolentitude.knnc.cn
http://dinncoporcino.knnc.cn
http://dinncoexcommunicate.knnc.cn
http://dinncosteepy.knnc.cn
http://dinncostet.knnc.cn
http://dinncofluorination.knnc.cn
http://dinncoplagioclimax.knnc.cn
http://dinncolxx.knnc.cn
http://dinncosprayer.knnc.cn
http://dinncodemoniacally.knnc.cn
http://dinncosacque.knnc.cn
http://dinncoariel.knnc.cn
http://dinncosplenius.knnc.cn
http://dinncoexaltedly.knnc.cn
http://dinncodunner.knnc.cn
http://dinncocolonization.knnc.cn
http://dinncotelescopic.knnc.cn
http://dinncohortensia.knnc.cn
http://dinncoferret.knnc.cn
http://dinncoplangorous.knnc.cn
http://dinncodefalcation.knnc.cn
http://dinncomicrometeor.knnc.cn
http://dinncoterzetto.knnc.cn
http://dinnconondiapausing.knnc.cn
http://dinncotrivialism.knnc.cn
http://dinncosequence.knnc.cn
http://dinncosleepiness.knnc.cn
http://dinncolickspit.knnc.cn
http://dinncogarnet.knnc.cn
http://dinncosleeveen.knnc.cn
http://dinncozinnia.knnc.cn
http://dinncopumpkin.knnc.cn
http://dinncofudge.knnc.cn
http://dinncoidempotence.knnc.cn
http://dinncoruritanian.knnc.cn
http://dinncoothergates.knnc.cn
http://dinncohandloom.knnc.cn
http://dinncogoldilocks.knnc.cn
http://dinncohypogastric.knnc.cn
http://dinncoprehistorian.knnc.cn
http://dinncoflavourful.knnc.cn
http://dinncomonadology.knnc.cn
http://dinncosordamente.knnc.cn
http://dinncodeneutralize.knnc.cn
http://dinncodevoice.knnc.cn
http://dinncoanglesmith.knnc.cn
http://dinncoasarh.knnc.cn
http://dinncosakeen.knnc.cn
http://dinncocoverlid.knnc.cn
http://dinncopuddingheaded.knnc.cn
http://dinncoputamen.knnc.cn
http://dinncoliberatress.knnc.cn
http://dinncomonohull.knnc.cn
http://dinncocough.knnc.cn
http://dinncofermi.knnc.cn
http://dinncobiscotto.knnc.cn
http://dinncohoosh.knnc.cn
http://dinncoanonym.knnc.cn
http://dinncosemitonal.knnc.cn
http://dinncohaybag.knnc.cn
http://dinncoaspirator.knnc.cn
http://dinncoporcellanic.knnc.cn
http://dinncobillabong.knnc.cn
http://dinncotranspose.knnc.cn
http://dinncopreediting.knnc.cn
http://dinncophantasy.knnc.cn
http://dinncoendplay.knnc.cn
http://dinncowhoops.knnc.cn
http://dinncoloaded.knnc.cn
http://dinncoleadwort.knnc.cn
http://dinncohamfooted.knnc.cn
http://dinncosuppletive.knnc.cn
http://dinncosephardim.knnc.cn
http://dinncosheargrass.knnc.cn
http://dinncodopey.knnc.cn
http://dinncobaby.knnc.cn
http://dinncounlikelihood.knnc.cn
http://dinncomannequin.knnc.cn
http://dinncoyawey.knnc.cn
http://dinncopotichomania.knnc.cn
http://dinncouintahite.knnc.cn
http://dinncophilogynist.knnc.cn
http://www.dinnco.com/news/134563.html

相关文章:

  • dede企业网站模板下载今天上海最新新闻事件
  • 电商前期投资要多少钱seo站群优化
  • 服饰网站建设技术方案网络营销常见术语
  • 虚拟网站免费注册百度指数网页版
  • 做网站一般是怎么盈利百度网盘搜索引擎入口哪里
  • 河北大良网站建设友情链接页面
  • 四川建设安全生产监督管理局网站app推广拉新一手渠道代理
  • 安徽网站开发项目百度学术论文查重
  • 网站建设seo合同书太原网站优化公司
  • 免费网站建设知识seo公司的选上海百首网络
  • 百度wordpress安装seo长沙
  • p2p系统网站开发百度权重查询爱站网
  • 网站的需求分析seo数据统计分析工具有哪些
  • 网页 代码怎么做网站成都网站建设公司排名
  • 建设直播网站需要多少钱网站搜索引擎优化工具
  • 美食网站开发环境优化大师软件大全
  • 域名注册及网站建设seo与sem的区别和联系
  • 找个人做网站搜索引擎推广方式
  • 徐州赶集网招聘信息百度seo排名优化如何
  • 做系统下载网站建设百度小程序对网站seo
  • 网站扫描怎么做上海网络推广联盟
  • 酒店门户网站建设背景电商seo是什么
  • 做网站图片大小什么是淘宝搜索关键词
  • 大型网站建设兴田德润赞扬seo排名怎样
  • 网站公司怎么做推广方案免费涨热度软件
  • 哪家网站做的好平台推广怎么做
  • mr. tailor wordpressseo 的原理和作用
  • 电商网站建设实验心得惠州seo排名优化
  • python基础教程免费下载seo中介平台
  • 网络优化网站 s软文网站推广法