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…

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

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

java对大文件分片上传

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

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; …

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

优维低代码技术专栏&#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…

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.给发件人报告邮…

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

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

如何在iPhone手机上修改手机定位和模拟导航?

如何在iPhone手机上修改手机定位和模拟导航&#xff1f; English Location Simulator&#xff08;定位模拟工具&#xff09; 是一款功能强大的 macOS 应用&#xff0c;专为 iPhone 用户设计&#xff0c;旨在修改手机定位并提供逼真的模拟导航体验。无论是为了保护隐私、测试位…

Python中的字符串与字符编码

Hello&#xff0c;这里是Token_w的博客&#xff0c;欢迎您的到来 今天文章讲解的是Python中的字符串与字符编码&#xff0c;其中有基础的理论知识讲解&#xff0c;也有实战中的应用讲解&#xff0c;希望对你有所帮助 整理不易&#xff0c;如对你有所帮助&#xff0c;希望能得到…

PDM/PLM系统建设

仅供学习使用&#xff0c;会随时更新 工程机械跨生命周期数据管理系统 来源&#xff1a;清华大学 浅论企业PDM/PLM系统建设成功经验 来源&#xff1a;e-works 作者&#xff1a;陈凡 https://articles.e-works.net.cn/pdm/article149572.htm 随着“中国制造2025”强基工程战略的…

张俊林:由ChatGPT反思大语言模型(LLM)的技术精要

转自&#xff1a;https://mp.weixin.qq.com/s/eMrv15yOO0oYQ-o-wiuSyw 导读&#xff1a;ChatGPT出现后惊喜或惊醒了很多人。惊喜是因为没想到大型语言模型&#xff08;LLM,Large Language Model&#xff09;效果能好成这样&#xff1b;惊醒是顿悟到我们对LLM的认知及发展理念&a…

Elisp之获取PC电池状态(二十八)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

ArcGIS Pro 基础安装与配置介绍

ArcGIS Pro ArcGIS Pro作为ESRI面向新时代的GIS产品&#xff0c;它在原有的ArcGIS平台上继承了传统桌面软件&#xff08;ArcMap&#xff09;的强大的数据管理、制图、空间分析等能力&#xff0c;还具有其独有的特色功能&#xff0c;例如二三维融合、大数据、矢量切片制作及发布…

Unity 鼠标控制 UI 放大、缩小、拖拽

文章目录 1. 代码2. 测试场景 1. 代码 using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems;public class UIDragZoom : MonoBehaviour, IDragHandler, IScrollHandler {private Vector2 originalSize;private Vector2 originalPosition;private RectTr…