ObjectC基础之块(Block)学习

2023-11-18

用Java语言来说,OC中的Block有着类的感觉。但OC的类与block又有着不同之处,OC的类有.m.h文件,即@interface@implementation。而Block却没有类,但是它有着属性。举个Block例子:

Bock基础用法:

#import <Foundation/Foundation.h>

struct Books {
	NSString *title;
	NSString *author;
	NSString *subject;
	int book_id;
}

int main(){
	struct Books Book1;

	Book1.title = @"OC编程";
	Book1.author =@"Cook";
	Book1.subject = @"OC教程";
	Book1.book_id = 88888;
	
	NSLog(@"Book1 title : %@",Book1.title);
}

结构体作为函数参数:

将结构体作为函数参数传递,与传递变量或指针的方式非常相似。

#import <Foundation/Foundation.h>

/*结构声明*/
struct Books {
	NSString *title;
	NSString *author;
	NSString *subject;
	int book_id;
}

@interface SampleClass : NSObject
/*函数声明*/
- (void) printBook:(struct Books) book;
@end

@implementation SampleClass

- (void)printBook:(struct Books) book {
	NSLog(@"Book title: %@",book.title);
}
@end

int main(){
	struct Books book1;
	
	book1.title = @"OC";
	book.author = @"Cook";
	book.subject = @"OC编程";
	book.book_id = 88888;

	SampleClass *splClass = [[SampleClass alloc] init];
	[splClass printBook: book1];
	
	return 0;
}

总结:OC的块跟对象类似。以后用到的地方还是挺多的。

更多课程请访问个人主页:

Github搭建个人博客(2019最新版,亲测

公众号:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ObjectC基础之块(Block)学习 的相关文章

  • iOS 何时清理本地应用程序 ./tmp 目录?

    iOS什么时候清理本地应用程序 tmp目录 请注意 这不是一个骗局这个问题 https stackoverflow com questions 3593900 iphone storage in tmp directory 我问的是应用程序
  • 如何将 NSMutableArray 添加到 NSMutableArray Objective-c

    我正在从 Java 切换到 Objective c 但遇到了一些困难 我已经搜索过这个问题但没有取得太大成功 我有一个存储 NSMutableArrays 的 NSMutableArray 如何向数组添加数组 您可以在数组中存储对另一个数组
  • Flutter Firebase 身份验证:启动延迟

    我在应用程序中使用 Provider 和流 FirebaseAuth instance onAuthStateChanged 来决定启动时重定向到哪里 但是尽管用户已经登录 从之前的启动 但应用程序在登录屏幕上启动 几乎 1 秒后重定向到主
  • iOS 上关键 ClientState 警告的默认访问速度缓慢

    在测试我的 iOS 应用程序时 我收到 对关键 ClientState 的默认访问速度慢 耗时 0 034635 秒 容差为 0 020000 警告 它似乎是间歇性发生的 我试图环顾四周看看它是关于什么的 但我并不完全确定 任何帮助表示赞赏
  • 单击按钮时退出应用程序 - iOS [重复]

    这个问题在这里已经有答案了 可能的重复 iOS 4 0 中退出应用程序 https stackoverflow com questions 3097244 exit application in ios 4 0 我有一个 AlertView
  • iPhone 的翻译器?

    我对为 iPhone 制作一个解释器很感兴趣 这将是一个实验性的想法 但可能会很棒 我喜欢让我自 己的语言适合移动计算和数学的想法 我查阅了很多资料 发现有关 iPhone 上的口译员的信息很复杂 苹果会允许什么 我见过这个应用程序 这是一
  • Apple 由于崩溃而拒绝了我的应用程序,无法重现它

    我刚刚上传了一个应用程序到应用程序商店 它是为ios 7开发的 他们拒绝了该应用程序 因为我无法重现崩溃 他们向我发送了这份崩溃报告 Exception Type EXC BAD ACCESS SIGSEGV Exception Subty
  • Bootstrap 响应式表格在 iOS 设备上无法垂直滚动

    这就是我所拥有的 div class table responsive table class table style background transparent table div 我正在使用以下 bootstrap css 文件 ht
  • 如何围绕指定的锚点以 2D 方式旋转容器小部件?

    我想对容器小部件 包含一些其他小部件 执行非常简单的 2D 旋转 该小部件将围绕中心的单个固定点旋转 不会变形 我尝试使用transform财产与Matrix4 rotationZ 这有点起作用 但锚点在top left角落 不在cente
  • 按升序对 NSDictionary 进行排序

    我正在尝试排序NSDictionary按升序排列 我正在使用这段代码 NSDictionary valDict self mGetDataDict key rowKey for NSString valueKey in valDict al
  • 依赖于不同队列上的另一个操作的 NSOperation 无法启动

    我有操作的依赖图 并且使用多个队列来组织各种操作流 例如 peopleQueue sitesQueue sessionQueue sessionQueue loginOp fetchUpdatedAccountOp peopleQueue
  • 使用javascript以编程方式触发iOS safari中的复制菜单?

    我正在尝试实现一种用户友好的方式 将一些文本从文本输入字段复制到 iOS Safari 上的剪贴板 我知道无法在这个平台上以编程方式完成此操作 但我希望能够尽可能地指导用户体验 在 iOS Safari 上 当用户手动突出显示某些文本时 会
  • UITableViewCell 内嵌套 UIStackView 内的 UILabel 有时会被截断

    我的一个表设置中有一个表视图单元格 其中包含以下视图层次结构 外部水平 stackview 固定到单元格内容视图的尾部 前部 底部和顶部边缘 右侧标签固定到其父 stackViewHackView 的尾部 前部 底部和顶部边缘 在我的控制器
  • 使用未声明的类型“对象”

    这太奇怪了 通常我可以理解未声明的类 但这是声称 Object 类本身未声明 NSObject 可以工作 但我的项目设置方式我需要它是一个纯 Swift 对象 我的类标题如下所示 import UIKit import Foundation
  • 如何将设备上未保存的图片上传到dropbox帐户?(IOS)

    Dropbox RestClient 仅保存文件 所以我想先将图像保存在本地文件夹中 然后上传它 结果它保存了文件 但它已损坏 NSString localPath NSBundle mainBundle pathForResource I
  • 如何将nsmutable数组添加到sqlite数据库表中

    如何将nsmutablearray添加到sqlite数据库表中 有人可以帮我编码吗 您可以使用 for int i 0 i lt mutArray count i NSString string mutArray objectAtIndex
  • AdMob 和 DFP 广告联盟之间的区别?

    我正在尝试在我的 iOS 应用程序上显示横幅广告和插页式广告 但现在我对广告网络感到困惑 AdMob 与 DFP 有何不同 哪一种更适合投放广告 有人可以提供帮助吗 提前致谢 AdMob 是一个广告网络 作为发布商 您可以通过展示从网络投放
  • 带有自定义字体的 UILabel 错误呈现

    在我的 iPhone 应用程序中 我为所有 UILabel 设置了自定义字体 更准确地说 我对 UILabel 进行了子类化 重写了一个方法 在该方法中设置了自定义字体 然后将 IB 中的所有标签设置为该自定义类 现在的问题是 所有文本都渲
  • 如何在flutter web中实现视频播放?

    我正在尝试在我的 flutter web 应用程序上播放 firebase 上托管的视频 我不明白这怎么可能 使用 flutter 原生 video player使用插件 但仅适用于 ios 和 android 有人可以告诉我是否可以将视频
  • 从应用程序内发送电子邮件中的图像和文本

    如何从我的应用程序内通过电子邮件发送图像和文本 表格数据形式 请大家帮忙并提出建议 谢谢 void sendMailWithImage UIImage image if MFMailComposeViewController canSend

随机推荐

  • Java的时间复杂度和空间复杂度

    时间复杂度和空间复杂度是算法效率的两个重要指标 也是在进行程序设计和性能优化时需要考虑的因素 下面分别介绍 Java 的时间复杂度和空间复杂度 1 时间复杂度 时间复杂度是算法运行时的时间消耗 通常用大 O 表示 Java 中常见的时间复杂
  • 数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器

    第1章 引言 随着互联网应用的广泛普及 海量数据的存储和访问成为了系统设计的瓶颈问题 对于一个大型的 互联网应用 每天几十亿的PV无疑对数据库造成了相当高的负载 对于系统的稳定性和扩展性造成了极大的问题 通过数据切分来提高网站性能 横向扩展
  • Tensorflow SSD实现与理解

    Tensorflow SSD实现与理解 1 论文解读 1 1 模型特点 2 1 训练特点 2 网络结构 2 1 特征提取卷积层 2 2 anchor box产生 3 TensorFlow 实现 3 1 运行图片检测 3 2 运行camera
  • django指定本地,局域网,外网访问

    本地和局域网访问 设置settings ALLOWED HOSTS 启动0 0 0 0 8000启动 其他局域网下使用 服务电脑的ip ipconfig获取 ipv4 192 168 x x 端口 外网访问 1 部署到云服务器 2 内网做端
  • Android开发从零开始

    http blog csdn net coolszy http 115 com folder faexml7y7 http www cnblogs com coolszy category 288258 html
  • 点云 pillar 形状的数据搜索

    读取点云数据 将点云数据中的某一个维度设置为0 生成一个新的点云数据 并建立其上的KDTree索引 给定查询点并对查询点进行半径搜索 并将半径邻域内的点渲染为红色 最后得到就是该点范围内 一个圆柱形的附近点集合 最后将可视化结果展示出来 代
  • 在Java平台中创建、使用分数类

    由于计算机的运行机制不像人类的大脑 所以在计算时并不能无限精度地运算下去 只能在一定的进度范围内进行数值求解 因此 至今计算机里都没有分数这种数据类型 不过我们为你可以借助Java类来自行定义分数类 进行分数的相关计算 下面直接给代码 pu
  • JDK安装指导

    Oracle官网地址 https www oracle com java版本查询 这里仅标识了java19和java17 java archived 查看更多 随便进入一个 根据后缀提示下载对应包即可 Linux安装 示例 java 1 8
  • [QT]day3

    1 一个闹钟 widget cpp include widget h include ui widget h include
  • FPGA的基本设计流程

    FPGA开发主要包括系统设计 设计输入 功能仿真 综合优化 综合后仿真 实现与布局布线 时序方针与验证 板级方针与验证 芯片编程与调试等9个部分 如下图所示 1 电路设计 在系统设计之前 首先要进行的是方案论证 系统设计和FPGA芯片选择等
  • PCL—低层次视觉—点云分割(RanSaC)

    点云分割 点云分割可谓点云处理的精髓 也是三维图像相对二维图像最大优势的体现 不过多插一句 自Niloy J Mitra教授的Global contrast based salient region detection出现 最优分割到底鹿死
  • 教程来啦!5分钟快速学习使用Tbarcode Office创建条码!

    Tbarcode Office是一款具有强大功能的条形码插件 无论在 Microsoft Word 还是在 Excel 中设置条码都非常的轻松 TBarCode Office 无缝集成在Microsoft Word和Microsoft Ex
  • Mybatis-Plus 实现用户ID自增出现的问题

    问题描述 项目基于 SpringBoot MybatisPlus 3 5 2 使用数据库自增ID时 出现重复键的问题 自增ID介绍 1 局部式配置 如下述代码所示 通过 TableId 字段来指定自增字段 Value 为数据库字段名 可以大
  • Kotlin与Java的异同(一)

    本文章只为了方便查阅 文章目录 Kotlin简介 Kotlin与Java的异同 1 函数 2 变量 变量类型 可变变量 不可变变量 3 类和属性 有参数的构造方法 setter 和 getter 4 枚举和 when 枚举 when 5 w
  • vim打开文件并跳转

    vim filename n 打开文件并跳转到指定行 vim filename pattern 打开文件并跳转到指定匹配字符
  • openpose&3d-pose-baseline搭建

    1 openpose如果遇到gstreamer的问题 把gstreamer 1 0 apt remove掉以后 重新装gstreamer 0 1 并且打开opencv cmakelist里的相关选项 然后重新make opencv 就解决了
  • 剑指offer-解决面试题的思路

    大家好 我是Nefelibat 在博客上记录算法笔记 是因为想push自己每天坚持刷几道算法题 同时也希望能把自己总结到的经验分享给大家 希望大家阅读愉快 目录 在写代码之前明确自己做的事情是什么 该怎么做 画图让抽象问题形象化 题目 二叉
  • Gin之获取path参数

    文章目录 Gin之获取path参数 1 path参数介绍 2 获取一个 path参数 Param方法 3 获取二个 path参数 Param方法 4 获取 path参数 Param方法 5 获取一个 path参数 ShouldBindUri
  • python语法(高阶)-设计模式(单例模式)

    参考内容 黑马程序员
  • ObjectC基础之块(Block)学习

    用Java语言来说 OC中的Block有着类的感觉 但OC的类与block又有着不同之处 OC的类有 m和 h文件 即 interface 与 implementation 而Block却没有类 但是它有着属性 举个Block例子 Bock