Objective-C基础语言开发来袭,你准备好了吗?

文/ZaiZai

前言

今天小白电脑技术的公众号迎来了一位Objective-C语言开发大神——ZaiZai。接下来有想要学习写插件(iOS/macOS/iPadOS/tvOS)的小伙伴可以关注微信公众号,教程将持续更新。

ZaiZai个人介绍……呃……他不让放。

Objective-C是一门基于iOS/macOS/iPadOS/tvOS系统的软件开发语言。本教程分为多期,后期会更新代码编写和程序设计等教程。

首先,我们要先了解什么是 Objective-C(简称 OC)。

Objective-C 是一种面向对象的编程语言,它是 C 语言的扩展,由 BradCox 在 20 世纪 80年代初期开发。Objective-C 最初是为了在 NeXTSTEP 操作系统上开发应用程序而设计的,后来被苹果公司采用并成为了 iOS 和 macOS 等操作系统的主要编程语言之一。

百度百科

OC 有什么优点?

动态性 Objective-C 具有很强的动态性,支持动态类型、动态绑定、动态方法解析等特性,使得程序更加灵活和易于扩展。丰富的框架和库Objective-C 提供了丰富的框架和库,包括 Foundation 框架、Cocoa框架、 CoreData 框架、 CoreAnimation 框架以及 UIKit 框架等,可以大大提高开发效率和程序的质量。

腾讯云

简单概括,就是很牛。

OC 可以干什么?

OC 可以开发基于iOS/macOS/iPadOS/tvOS系统的各种应用 APP,你在 AppStore 里看到的大部分 APP都是基于 OC 开发的,在越狱获取 ROOT 最高权限的情况下,你可以干更多有趣的事!

开发 OC 需要什么环境?

上文提到 OC 是为 Apple 服务的,那么开发 OC 当然基于我们的 MacOS 了。(使用Windows系统是无法直接完成开发的,需要在电脑上安装VMware虚拟机,然后在虚拟机里安装macOS系统,或者是直接把电脑做成双系统:黑苹果+Windows系统)。

有些朋友没有Mac 怎么办呢?没关系, 只要你有 Windows,你就可以利用 VMware 虚拟机构建一个虚拟的 Mac 系统,可以满足日常的需要。

  • VMware虚拟机安装macOS系统教程(点我跳转)

当然如果您有实力可以直接购买一台mac电脑(MacBook Air或Macmini)在小型开发中性能是足够的,体验中会比虚拟机运行起来更加流畅。

有相对应的系统之后,还需要做什么准备才能进行开发?

开发环境配置

无论是什么语言,一定离不开编辑器,那么 OC 的编辑器是什么呢?

图片

Xcode全版本记录表icon-default.png?t=N7T8https://pan.xunlei.com/s/VNzxSFb_TJ29LWIGkjjF-IBrA1?pwd=j9kn#

下载文件之后打开就能看到一个全版本记录表,按照自己的电脑版本选择对应的Xcode版本下载。

图片

点击【下载Xcode】按钮之后会跳转到苹果官网下载,此时你需要有一个Apple ID,登录上去之后注册为开发者。(推荐 Xcode14)

图片

然后有一大串英文的界面,打个勾,然后点击【Agree】

图片

再返回到Xcode界面,重新点击【下载Xcode】

图片

文件就开始下载了。

图片

    安装教程

双击 Xcode_xx.x.xip 解压缩文件(文件有点大,请耐心等待)

图片

然后双击 Xcode.app 文件

图片

点击【Agree】

图片

输入macOS的开机密码,然后选择想要开发的平台方向,需要的方向打勾,然后点击【Install】

图片

等待安装完成

图片

安装完成之后,并没有任何提示……

这时候再点击刚刚的Xcode.app,就能看到这个界面

图片

看到这个界面,你就踏出了成为开发大佬的第一步!恭喜你!

--End--

XCODE 的常用快捷键有哪些?

Win/Commond+ R: 编译并运行(不触发断点);

Win/Commond + Y: 编译并调试(触发断点);

Win/Commond + SHIFT + RETURN: 终止运行或调试;

Win/Commond + B: 编译;CMD + SHIFT + K: 清理;

这里的【Win】按键指的是你安装VMware虚拟机或者黑苹果的时候,它的功能键映射。

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

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

相关文章

flutter升级textField WhitelistingTextInputFormatter

将WhitelistingTextInputFormatter(RegExp("[0-9]"))升级FilteringTextInputFormatter.allow(RegExp("[0-9]")), 一下为新方法 1.只允许输入数 TextField(inputFormatters: [FilteringTextInputFormatter.allow(RegExp("[0-9.]")),],),2.only …

AI早班车6.13

全球AI新闻速递 1.Yandex 开源模型训练工具“YaFSDP”,提升 GPU 利用率。 2.全天候激光智能除草机器人落地,环境零污染。 3.苹果2024开发者大会-Siri 更智能。 4.CampusAI筹集1000万美元种子资金,创建虚拟校园用于学习AI技能。 5.OpenAI&…

C语言详解(预编译)

Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C语言 🚀本系列文章为个人学习…

深度学习每周学习总结N1(one-hot 编码案例)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 数据链接 提取码:c949 –来自百度网盘超级会员V5的分享 目录 总结:1. 中文文本One-Hot编码示例代码解析 2.直接使…

js实现实现九宫格乱序抽奖

我们以前写的九宫格抽奖,都是顺时针按照顺序进行旋转抽奖,今天给大家分享一下乱序,就是不按照一定顺序的。 用户的具体步骤:用户点击开始抽奖时,奖项开始随机闪,闪到一定次数后停止并且进行抽奖成功提示&a…

什么是DMZ?路由器上如何使用DMZ?

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 DMZ 📒🚀 DMZ的应用场景💡 路由器设置DMZ🎈 注意事项 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 在网络管理中,DMZ(Demilitarized Zone,隔离区)是一个特殊的网络区域,常用于将公共访问和内部网络隔离开来。DMZ功能允许…

vue面试题汇总之响应式理解

进行代理(解决第一步读写数据调用函数) vue2使用Object.defineProperty进行数据代理(getter和setter),vue3使用Proxy进行数据代理 Proxy的性能会比Object.defineProperty好很多 Object.defineProperty是一次性代理完所有的数据,如果对象嵌套很深就会一直递归直到代理完所有属…

遇到JSON文件就头大?掌握Python这几种方法,让你轻松应对

目录 1、标准库json模块 📄 1.1 json.load()函数介绍 1.2 json.loads()处理字符串 1.3 使用json.dump()写入JSON 1.4 json.dumps()美化输出 1.4 错误处理与编码问题 1.5 高效读取大文件技巧 2、第三方库simplejson加持 🔧 2.1 安装与导入simplejson 2.2 性能优势与…

A.计算圆周率——无穷级数法

描述 圆周率π可以用无穷级数表示: 左边的展式是一个无穷级数,被称为莱布尼茨级数(Leibniz),这个级数收敛到π/4,它通常也被称为格雷戈里-莱布尼茨级数,用以纪念莱布尼茨同时代的天文学家兼数…

解决css文本内容为符号不会换行问题

错误样式如上,超出了规定的文本区域。 在css上增加word-wrap: break-word;即可。

电商价格监测对于品牌渠道管控的重要性

当品牌开启经销渠道或涉足电商渠道时,必须着手进行线上线下价格监测。只有监控到电商价格,才能明晰出货后的商品历经多轮市场演绎后的实际价格,进而了解市场需求下的真实低价行为。借助力维网络开发的电商价格监测系统,品牌商能知…

uni-app利用renderjs实现安卓App上jssip+freeswitch+webrtc音视频通话功能

效果图 前置知识 利用renderjs在app端加载for web库 JsSIPFreeSwitchVue实现WebRtc音视频通话 原始模块 <template><viewclass"test-sip":userExtension"userExtension":change:userExtension"JsSIP.handleUserExtenSionChange":tar…

Python邮箱发送如何设置?Python发信方法?

Python邮箱发送邮件需要哪些库&#xff1f;怎么使用Python发信&#xff1f; Python的强大之处在于其丰富的库和模块&#xff0c;使得开发者可以轻松地实现各种功能&#xff0c;包括通过电子邮件发送信息。AokSend将介绍如何在Python中设置和发送电子邮件&#xff0c;以及相关的…

超高频载码体有哪些特点?

载码体由线圈、已编程的芯片&#xff0c;以及电池(在有源读写系统中)组成&#xff0c;具有唯一的电子编码&#xff0c;拥有大容量的存储空间&#xff0c;通常附着于产品载体乃至是产品本身&#xff0c;成为一个随产品移动的移动数据库&#xff0c;可以帮助企业更好的物料、成品…

JAVA2 简单运算 题目

题目 JAVA2 简单运算分析&#xff1a;代码&#xff1a;大佬代码&#xff1a; JAVA2 简单运算 描述 输入两个正整数a和b&#xff0c;输出这两个正整数的和&#xff0c;差&#xff0c;积&#xff0c;商&#xff0c;模&#xff08;若a>b则输出a-b&#xff0c;a/b&#xff0c;a%…

AH8652:220V转5V非隔离电源芯片

### AH8652&#xff1a;220V转5V非隔离电源芯片&#xff0c;高效转换新选择 #### 引言 随着电子设备对电源稳定性和安全性要求的提高&#xff0c;非隔离电源转换芯片因其简单、高效和成本效益而受到市场的欢迎。AH8652是一款专为220V转5V设计的非隔离电源芯片&#xff0c;以其…

Ubuntu安装Protobuf

以前的版本中&#xff0c;有./configure&#xff0c;所以参照下面的博客链接 Ubuntu安装Protobuf&#xff0c;指定版本_ubuntu更新protobuf-CSDN博客 后来的版本中&#xff0c;没有了./configure文件&#xff0c;需要安装bazel,参照下面的官网链接 protobuf/src/README.md a…

nvidia 显卡 没有正确安装或配置 OpenGL 库

看到这个错误可能意味着你的系统没有正确安装或配置 OpenGL 库。以下是一些步骤来解决这个问题&#xff1a; 1. 安装必要的软件包 确保你已经安装了必要的软件包&#xff0c;包括 mesa-utils 和 nvidia-driver。 安装 mesa-utils sudo apt update sudo apt install mesa-ut…

python替换word文件中的图片

python替换word文件中的图片 模拟鼠标键盘&#xff0c;截屏 import glob import os import timeimport pyautogui import pyautogui as p from PIL import ImageGrab from pynput.keyboard import Controller# -*- coding:utf-8 -*-directory ./directory1 ./outputfor f i…

基于 Redis 实现分布式缓存

一、单节点 Redis 的问题 1.1 存在的问题 1、数据丢失问题&#xff1a;Redis 是内存存储&#xff0c;服务重启可能会丢失数据。 2、并发能力问题&#xff1a;单节点 Redis 并发能力虽然不错&#xff0c;但也无法满足如 618 这样的高并发场景。 3、故障恢复问题&#xff1a;如果…