第二部分-Foundation基础-学习导航

专题地址:MacOS一站式程序开发系列专题
在这里插入图片描述

第一部分:基础入门-学习导航

ObjectiveC-第一部分-基础入门-学习导航

第二部分:Foundation基础学习导航

  1. Foundation框架-13-数据对象:主要讲述NSRange, NSString, NSValue, NSNull, NSDate以及NSData对象的使用
  2. Foundation框架-14-数据集合:NSSet, NSArray, NSDict)以及集合过滤(NSPredicate)
  3. Foundation框架-15-ObjectviceC的内存管理:内存管理,了解即可,因为在5.4之后内存全部变为自动的不需要手动处理
  4. Foundation框架-16-文件处理一:文件目录和文件操作
  5. Foundation框架-16-文件处理二:文件目录和文件操作
  6. Foundation框架-17-数据归档与解压:文本和对象序列化操作
  7. Foundation框架-18-并发程序基础:并发程序入门基础

以上全是属于基础内容吧,需要越精通越好,当然了笔者描述的也只是皮毛部分。要想精通需要多练习,快速记住各个API的用法。

在这里插入图片描述

关于Objective开发语言

生态体系

开发Apple公司相关产品的软件时,主要有两个框架可供使用:Cocoa和Cocoa Touch。Cocoa是一个开发Mac OS系统应用的开发工具包,而Cocoa Touch工具包主要用于IOS系统应用的开发,可以简单理解为Objective-C是一种编程语言,而Cocoa是开发框架,发展至今天,Apple Develop开发体系大体如下图所示:
在这里插入图片描述

上图中有几点需要详细说下明:

  • . Foundation:这是一个ObjC语言的核心扩展包。它并没有内置于Objective-C语言中,也不包含任何UI元素,所以可以在不同的平台通用,大概提供了100多个扩展类;

  • . Cocoa:MacOS系统应用开发框架,它提供了丰富用户体验的UI框架,由Foundation库、用于数据管理的CoreData框架以及AppKit图形化框架组成;

  • . Cocoa Touch:IOS系统应用开发框架,它提供了丰富用户体验的UI框架,它包括Foundation库、用于数据管理的CoreData框架以及UIKit库,UIKit可以看成是简版的Appkit,同时附加了比如wifi
    、gps等API;

  • Swift:一种后期开发的Apple系统应用软件的开发语言,原因是作为一门比较老的语言,
    Objective-C缺少很多现代语言所具备的高级特性。可以简单理解为Swift是为了弥补ObjC的缺陷而开发的一种语言,ObjC与Swift可以相互调用,所以在同一项目中可以并存;

  • 关于Foundation

Foundation是在早期的CoreFoundation框架的基础上开发的,开发时也可以使用CoreFoundation(但不建议),在帮助文件中以CF开头的全是CoreFoundation中的对象;

在这里插入图片描述

  • Macos X kernel:内核以设备驱动程序的形式提供与硬件的底层通信。它负责管理系统资源,包括调度需要执行的程序、管理内存和电源,以及执行基本的I/O操作。
  • Core services:核心服务提供的支持比它上面层次更加底层或更加“核心”。例如,提供对集合、网络、调试、文件管理、文件夹、内存管理、线程、时间和电源的管理。
  • Application Services:应用服务层包含打印和图形渲染的支持,包括Quartz、OpenGL和Quicktime。
  • Cocoa:开发框架,Cocoa包括Foundation、Core Data和AppKit框架。Foundation框架提供处理集合、字符串、内存管理、 文件系统、存档等相关的类。AppKit框架提供管理视图、窗口、文档和使Mac

开发文档

在Foundation中有125个可用的头文件(还在增加),通过import <Foundation/Foundation.h>的方式导入。为了不与其它框架的语言冲突,所有的系统类对象都以 NS 开头。

Xcode中获取

在这里插入图片描述

查阅Online文档

https://developer.apple.com/documentation/
在这里插入图片描述

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

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

相关文章

模型量化技术

量化(Quantization)技术专注于用较少的信息表示数据&#xff0c;同时尽量不损失太多准确性。 具体来说&#xff0c;量化会将模型参数使用的数据类型&#xff0c;转换为更少位数表示&#xff0c;并尽可能达到相同信息的效果。 例如&#xff0c;假设您的模型权重原始以32位(32-b…

CFCASSL证书的网络安全解决方案

在数字化时代&#xff0c;网络信息安全的重要性不言而喻。随着电子商务、在线交易、远程办公等互联网活动的日益普及&#xff0c;确保数据传输的安全性与隐私保护成为企业和用户共同关注的焦点。在此背景下&#xff0c;CFCA SSL证书作为一种权威、高效的网络安全解决方案&#…

[LitCTF 2023]PHP是世界上最好的语言!!、 [LitCTF 2023]Vim yyds、 [羊城杯 2020]easycon

目录 [LitCTF 2023]PHP是世界上最好的语言&#xff01;&#xff01; [LitCTF 2023]Vim yyds [羊城杯 2020]easycon [LitCTF 2023]PHP是世界上最好的语言&#xff01;&#xff01; 无参&#xff0c;根据题目提示看看php能否执行——返回1执行成功 用system()函数调用、执行ls …

C++教你如何模拟实现string,如何实现string写时拷贝

文章目录 前言成员变量默认成员函数默认构造函数拷贝构造函数析构函数赋值运算符重载 容量相关函数&#xff08;Capacity&#xff09;reserve函数resize函数size函数capacity 函数clear函数 修改函数&#xff08;Modifiers&#xff09;swap函数insert函数字符插入字符串插入 ap…

LRU缓存(哈希+双链表)

题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关键字的值&#xff0c;…

基于docker搭建瀚高数据库HighGo6.0.1【图文】

基于docker搭建瀚高数据库HighGo6.0.1 拉取镜像启动验证进入容器 登录数据库查看数据库加密方式修改加密方式为sm3进入数据库修改密码重启容器 数据库验证数据库密码到期参考 docker部署 https://blog.csdn.net/weixin_44385419/article/details/127738868 拉取镜像 docker p…

【Java】变量零基础教程

目录 一、引言 二、基本组成单位 三、变量的基本原理 四、变量的基本使用步骤 五、变量快速入门 六、变量使用的注意事项 一、引言 为什么需要变量&#xff1f; ​​​​​​一个程序就是一个世界。 大家看下图&#xff0c;是我们现实中的一张生活照&#xff0c;图里有树…

spring aop介绍

Spring AOP&#xff08;面向切面编程&#xff09;是一种编程范式&#xff0c;它允许开发者将横切关注点&#xff08;cross-cutting concerns&#xff09;从业务逻辑中分离出来&#xff0c;从而提高代码的模块化。在传统的对象导向编程中&#xff0c;这些横切关注点&#xff0c;…

Yarn 安装与配置:简化 JavaScript 项目依赖管理

在现代 JavaScript 项目开发中&#xff0c;管理依赖项是一项关键任务。Yarn 作为 Facebook、Google、Exponent 和 Tilde 联合推出的 JavaScript 包管理工具&#xff0c;以其快速、可靠和安全的特性&#xff0c;赢得了开发者的广泛青睐。本文将引导您在主流操作系统上安装 Yarn&…

ic基础|时序篇:握手协议valid和ready的时序优化

大家好&#xff0c;我是数字小熊饼干&#xff0c;一个练习时长两年半的ic打工人。我在两年前通过自学跨行社招加入了IC行业。现在我打算将这两年的工作经验和当初面试时最常问的一些问题进行总结&#xff0c;并通过汇总成文章的形式进行输出&#xff0c;相信无论你是在职的还是…

Maven的常用基本命令

Maven是一个Java项目的构建和依赖管理工具&#xff0c;它有一系列命令用于项目的构建、清理、安装、部署等操作。以下是一些Maven的常用命令及其详细解释与举例&#xff1a; 1.mvn clean 功能&#xff1a;清理项目构建过程中生成的中间文件和目标目录&#xff08;target&…

【华为OD机试】分月饼【C卷|200分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 中秋节,公司分月饼,m 个员工,买了 n 个月饼,m ≤ n,每个员工至少分 1 个月饼,但可以分多个,单人分到最多月饼的个数是 Max1 ,单人分到第二多月饼个数是 Max2 ,Max1 - Max2 ≤ 3 ,…

HarmonyOS开发案例:【视频播放器】

介绍 基于video、swiper和slider组件&#xff0c;实现简单的视频播放器&#xff0c;可支持海报轮播、视频播放等功能。 相关概念 [video组件]&#xff1a;视频播放组件。[swiper组件]&#xff1a;滑动容器&#xff0c;提供切换子组件显示的能力。[slider组件]&#xff1a;滑…

秋招之路 面经

这里参考一位很厉害的前辈所分享的他的嵌入式软件工程师秋招之路&#xff0c;自己详细的读了一下他的经历以及他的分享的秋招面试和项目经验的总结。 我的嵌入式软件工程师秋招之路&#xff08;文末送福利&#xff09;_嵌入式软件工程师 刷leetcode-CSDN博客 如何在面试中介绍…

针对窗口数量多导致窗口大小显示受限制的问题,使用滚动条控制窗口

建议&#xff1a;首先观察结果展示&#xff0c;判断是否可以满足你的需求。 目录 1. 问题分析 2. 解决方案 2.1 界面设计 2.2 生成代码 2.3 源码实现 3. 结果展示 1. 问题分析 项目需要显示的窗口数量颇多&#xff0c;主界面中&#xff0c;如果一次性显示全部窗口&#x…

Web3钱包开发获取测试币-Base Sepolia(二)

Web3钱包开发获取测试币-Base Sepolia(二) ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b0c0ac86b04a496087471388532bc54a.png) 基于上篇 Web3钱包开发获取测试币-Polygon Mumbai(一) &#xff1a;https://suwu150.blog.csdn.net/article/details/137949473 我…

MyBatis 框架学习(I)

MyBatis 框架学习(I) 文章目录 MyBatis 框架学习(I)1. 介绍2. 准备&测试3. MyBatis 注解基础操作3.1 日志输出3.2 Insert 操作3.3 Delete 操作3.4 Update 操作3.5 Select 操作 总结 1. 介绍 之前我们学习过利用JDBC操作数据库进行项目开发&#xff0c;但我们发现它操作起来…

设计模式学习笔记 - 开源实战二(中):从Unix开源开发学习应对大型复杂项目开发

概述 项目越复杂、代码量越多、参与开发人员越多、开发维护时间越长&#xff0c;我们就要越重视代码质量。代码质量下降会导致项目研发困难重重&#xff0c;比如&#xff1a;开发效率低&#xff0c;找了很多人&#xff0c;天天加班也出活不多&#xff1b;线上 bug 频发&#x…

LINUX固定USB设备名称

在Linux系统中&#xff0c;USB串口设备的名称通常是根据设备连接的顺序动态分配的。因此&#xff0c;当设备重新连接时&#xff0c;它可能会被分配不同的设备文件名&#xff08;如/dev/ttyUSB0、/dev/ttyUSB1等&#xff09;。要固定USB串口设备的名称&#xff0c;你可以使用ude…

扫描工具nmap

介绍 说到黑客&#xff0c;知识就是力量。您对目标系统或网络的了解越多&#xff0c;可用的选项就越多。因此&#xff0c;在进行任何利用尝试之前&#xff0c;必须进行适当的枚举。 假设我们获得了一个 IP&#xff08;或多个 IP 地址&#xff09;来执行安全审计。在我们做任何…