IOS开发-XCode14介绍与入门

IOS开发-XCode14介绍与入门

  • 1. XCODE14的小吐槽
  • 2. XCODE的功能bar一览
  • 3. XCODE项目配置一览
  • 4. XCODE更改DEBUG/RELEASE模式
  • 5. XCODE单元测试

1. XCODE14的小吐槽

iOS开发工具一直有个毛病,就是新版本的开发工具的总会有一些奇奇怪怪的bug。比如在我的Mac-Pro(2.3 GHz 八核Intel Core i9)中iOS stimulator就无法使用(MyMac是可用的)。但是真机就可以正常使用。也不知道是XCODE14是只对本家M系芯片的优化导致Intel用不了还是咋的,很是苦恼。

2. XCODE的功能bar一览

首先我们可以看到位于XCODE左侧边栏的一排功能图标。下面介绍几个最常使用的功能
请添加图片描述
从左到右依次介绍

  1. 文件夹:我们打开.xcodeproj为后缀的项目时,该项目的所有资源都会在文件夹中显示
  2. 资源历史:所有资源的修改历史在这里(一般用不到)
  3. 层次结构:展示项目的所有类与方法(一般用不到)
  4. 全局搜索:非常有用,在整个项目中进行关键字的搜索,也可以使用快捷键(SHIFT+CMD+O)来实现快速搜索。搜索的类型包括:文本、引用、定义、一般表达式、层次结构。其中文本和层次结构使用较多。文本可以快速定位关键字在项目中出现的位置,从而更好的理解大型项目的运作;层次结构可以展示方法调用的层次结构,从而更好的梳理功能
  5. 错误信息:包含了编写的语法错误以及编译时的错误(需要注意有些时候错误不会在该处显示),可以定位运行失败的一些错误。
  6. 单元测试:利用xcode进行单元测试时,所有的测试项目将在该处显示
  7. DEBUG导航:在进行DEBUG时,程序的性能、内存等信息会在这里展示,同时运行时调用函数的堆栈和线程也在这里展示,是调试和测试时获取关键信息的地方。请添加图片描述
  8. breakpoint管理器:这里可以看到所有的breakpoints,并通过鼠标的拖拽和点击来控制其是否被启用和删除
  9. 日志历史:在这里可以看到当前运行和编译的所有历史记录,如果在错误信息一栏中没有找到错误信息,但提示编译失败则可以到这个功能中点开详细的日志来排查错误

3. XCODE项目配置一览

双击文件夹中的项目图标,我们可以看到项目的配置信息
请添加图片描述
我们可以到项目信息的左侧边栏为project(你的项目名称)以及编译目标平台(图中为mobile也就是iOS端,desktop也就是Mac端)

在project中右边顶层有三个bar:info, build settings, package dependencies

info中给定了部署设备的版本号、在debug和release模式下的配置,一般我们不对其进行修改;

build settings中配置较多,用的比较多的有以下几个配置:

  • Header Search Paths:如果需要引入一些第三方库,我们可以将其头文件path加入到这里,项目编译时就可以正确找到这些头文件
  • Other C Flags:一些额外的编译选项可以在这里填写,使得编译器可以正确识别flag
  • C++ Language Dialect:修改C++的版本,一些第三方库可能会指定C++编译器的最低版本可以在这里修改

TARGETS中的配置则更为丰富
下面列举几个重要的配置:

  • Genral中的Bundle Identifier:项目的唯一标识,一些第三方库想要链接到项目中需要提供这个Bundle Identifier需要在Signing&Capabilities中设置
  • Header Search Paths:头文件的搜索地址
  • Libraray Search Paths:链接库的搜索地址
  • Build Phases中的Link binary with libraries:链接的静态库和动态库都配置到这里
  • Copy Bundle Resources:该target中需要的资源
  • Compile Source:该target中编译的所有非头文件代码

4. XCODE更改DEBUG/RELEASE模式

请添加图片描述

5. XCODE单元测试

File->New->Target
在Filter中输入Unit Testing Bundle创建单元测试项目
这里可以利用GitHub项目xcode-GoogleTest讲GoogleTest测试框架接入到XCTest(XCODE自带的测试框架中)请添加图片描述
未完待续…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/38913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Springboot 实践(3)配置DataSource及创建数据库

前文讲述了利用MyEclipse2019开发工具,创建maven工程、加载springboot、swagger-ui功能。本文讲述创建数据库,为项目配置数据源,实现数据的增删改查服务,并通过swagger-ui界面举例调试服务控制器 创建数据库 项目使用MySQL 8.0.…

vue基础知识四:Vue实例挂载的过程

一、思考 我们都听过知其然知其所以然这句话 那么不知道大家是否思考过new Vue()这个过程中究竟做了些什么? 过程中是如何完成数据的绑定,又是如何将数据渲染到视图的等等 一、分析 首先找到vue的构造函数 源码位置:src\core\instance\…

一生一芯4——使用星火应用商店在ubuntu下载QQ、微信、百度网盘

星火应用商店可以非常方便的完成一些应用的下载,下面是官方网址 http://spark-app.store/download 我使用的是intel处理器,无需下载依赖项,直接点击软件本体 我这里下载amd64,根据自己的处理器下载对应版本 sudo apt install ./spark-stor…

做视频_Style

Video 1> 风格2> 技巧3> 借鉴 🔗 B站视频 1> 风格 记录分享生活,工作,学习方面的总结; 4个段位: 实用 -> 简洁 -> 清晰流畅 -> 生动有趣 2> 技巧 1> 大视频分段录制,最后合并…

pytorch入门-神经网络

神经网络的基本骨架 import torch from torch import nn #nn模块是PyTorch中用于构建神经网络模型的核心模块。它提供了各种类和函数,可以帮助你定义和训练神经网络。class Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__() #调用 super(Tudui,…

数据结构入门指南:二叉树

目录 文章目录 前言 1. 树的概念及结构 1.1 树的概念 1.2 树的基础概念 1.3 树的表示 1.4 树的应用 2. 二叉树 2.1 二叉树的概念 2.2 二叉树的遍历 前言 在计算机科学中,数据结构是解决问题的关键。而二叉树作为最基本、最常用的数据结构之一,不仅在算法…

java对大文件分片上传

这里记录一下,Java对大文件的切分,和后端接口分片上传的实现逻辑 正常,前后端分离的项目其实是前端去切分文件,后端接口接收到切分后的分片文件去合并,这里都用java来记录一下。特别说明:我这里用的是zip包…

vue+java实现在线播放mp4视频

java: 读取本地视频文件的流然后给response的输出流 File file new File("/Users/zhangqingtian/Documents/水库/Floodforecast/static/" videoName);BufferedInputStream inputStream new BufferedInputStream(new FileInputStream(file));response.setContentT…

ReactDOM模块react-dom/client没有默认导出报错解决办法

import ReactDOM 模块“"E:/Dpandata/Shbank/rt-pro/node_modules/.pnpm/registry.npmmirror.comtypesreact-dom18.2.7/node_modules/types/react-dom/client"”没有默认导出。 解决办法 只需要在tsconfig.json里面添加配置 "esModuleInterop": true 即…

【C++】queue容器

1.queue容器基本概念 2.queue常用接口 #include <iostream> using namespace std;//队列queue #include<queue>//创建Person类 class Person { public:Person(string name, int age){this->m_Name name;this->m_Age age;}string m_Name; //姓名int m_Age; …

mysql创建新用户并授权

目录 前言登录到mysql创建用户用户授权更改用户密码参考 前言 略 登录到mysql shell> mysql -h127.0.0.1 -P3306 -uroot -p******创建用户 mysql> CREATE USER abc% IDENTIFIED BY 123456;用户授权 mysql> GRANT all privileges ON ruoyi.* TO abc%;用户ruoyi拥有…

优维低代码实践:自定义模板

优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学习的平台。 优维…

禾赛科技Q2营收交付双新高,国产激光雷达从量变到质变

随着2022年激光雷达元年、2023年城市智能辅助驾驶&#xff08;NOA&#xff09;元年相继到来&#xff0c;激光雷达产业迎来爆发期。 今年以来&#xff0c;自动驾驶公司、汽车制造商以及移动出行公司等各路人马积极推动城市级别的智能辅助驾驶全面落地&#xff0c;北京、上海、深…

通过css设置filter 属性,使整个页面呈现灰度效果,让整个网页变灰

通过css设置filter 属性设置页面整体置灰 效果图: 通过设置 filter 属性为 grayscale(100%)&#xff0c;页面中的所有元素都会被应用灰色滤镜效果&#xff0c;使整个页面呈现灰度效果。 <style type"text/css"> html { filter: grayscale(100%); -webkit-f…

git pull 某一个文件或文件夹

QQ: 2967732156 背景&#xff1a; 在使用Oracle VM VirtualBox&#xff0c;进行Linux开发时&#xff0c;随着使用内存越来越少&#xff0c;空间已不足拉取整个代码库。 Ubuntu1604内存够&#xff0c;Ubuntu18.04内存不够。 思路&#xff1a; 第一步&#xff1a;从问题本身…

TB/TM-商品详情原数据(APP)

一、接口参数说明&#xff1a; item_get_app-获得TB/TMapp商品详情原数据&#xff0c;点击更多API调试&#xff0c;请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/taobao/item_get_app 名称类型必须描述keyString是调用key&…

考研 408 | 【计算机网络】 应用层

导图 网络应用模型 客户/服务器&#xff08;c/s&#xff09;模型 P2P模型 DNS 域名 域名服务器 域名解析过程 文件传输协议FTP FTP服务器和用户端 FTP工作原理 电子邮件 电子邮件的信息格式 组成结构 邮件服务器的功能&#xff1a; 1.发送&接收邮件 2.给发件人报告邮…

使用windows Api简单验证ISO9660文件格式,以及装载和卸载镜像文件

使用IIsoImageManager接口简单验证ISO镜像文件正确性,使用AttachVirtualDisk装载ISO镜像文件,和使用DetachVirtualDisk卸载,(只支持windows 8及以上系统) 导读 IIsoImageManager 验证ISO文件正确性AttachVirtualDisk 装载镜像文件DetachVirtualDisk 卸载镜像文件其他相关函…

《游戏编程模式》学习笔记(四) 观察者模式 Observer Pattern

定义 观察者模式定义了对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。 这是定义&#xff0c;看不懂就看不懂吧&#xff0c;我接下来举个例子慢慢说 为什么我们需要观察者模式 我们看一个很简…

PAT (Advanced Level) 甲级 1004 Counting Leaves

点此查看所有题目集 A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Specification: Each input file contains one test case. Each case starts with a line containing 0<N<100, …