首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS中以下语法的含义是什么?typedef void(^ something)(NSInteger*a);

这个语法在iOS开发中并不常见,但是我们可以将其分解为两个部分来理解:typedefvoid(^something)(NSInteger*a)

首先,typedef是一个关键字,用于为C语言中的数据类型定义一个别名。在这种情况下,它定义了一个名为something的数据类型,其别名是void(^)(NSInteger*)

其次,void(^something)(NSInteger*a)是一个函数指针类型,它定义了一个回调函数,该函数接受一个指向NSInteger类型的指针,并返回一个void类型的值。在C语言中,函数指针类型通常使用void*来表示,但是在这里,它被明确指出为void(^)(NSInteger*)。这表明该回调函数应该被用于处理NSInteger类型的值,并且该回调函数的结果应该被用于传递回调用者。

因此,这个语法的作用是将一个回调函数类型定义为不接受任何参数,只接受一个指向NSInteger类型的指针,并且返回一个void类型的值。在iOS开发中,这种回调函数通常用于在操作完成或发生错误时回调,以便在事件发生时可以执行特定的操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS block探究(一): 基础详解你要知道block都在这里

) { //block code } block标志就是^,所有的block必须以^开头 returnType表示返回值类型,如果没有返回值一般使用void表示 再来看一下定义block变量基础语法...(具体实现细节在iOS block探究(二): 深入理解中有详细介绍)这样,外部变量修改就会影响到block内部。...block作为参数传递 在实际应用很少有上述那样用法,更多是定义一个block块然后作为参数传递。...//使用typedef定义一个无返回值、有一个NSInteger类型形参block类型,该block名字为 CJMNumberOperationBlock typedef void (^CJMNumberOperationBlock...变量(在iOS @property探究(一): 基础详解一文中有详细介绍weak修饰符与此处含义一致),使用__weak修饰表示弱引用, 定义weakSelf不会增加self引用计数,因此在block

91180
  • iOS「回调(callback)」

    本文主要参考:《Object-C 编程 Big Nerd Ranch Guide》一书第24章 本文适读对象: 想系统了解iOS若干种回调机制朋友; 想初步了解Block语法朋友。...iOSRun loop 我们知道自己需要callback,那在iOS,具体要怎么实现呢?...Block语法,所以这里还要写一个方法 // 方案一,接收到通告后要执行方法 - (void)showAlertView:(NSNotification *)note { // 弹出提示框...// 在文件顶部(#import之下)用typedef将Block重新定义为一种新数据类型 typedef void(^YourBlockName)(id, NSString *, NSUInteger...它其实就是大括号括起来一段代码,只是语法有点「怪异」而已,而且可以作为方法参数进行传递。(在Swift,与之对应貌似是「闭包(Closures)」)。

    3.5K30

    Warning统计

    1、Block导致循环引用 去除一方强引用即可 2、Block引起循环引用误报 查看Marsony源码 - (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker...同样还有这种情况有遍历block;GCGblock、UIView animationBlock; 解决方案 2.1、将下划线形式_实例变量变成点语法 // make.left.mas_greaterThanOrEqualTo...解决方案 3.1、加一个void参数 3.2、全部忽略 4、未被使用变量 Unused variable ‘xxxx’ 减少此类Warning有利于节省内存 5、指针未添加nullable标识...long NSInteger; typedef unsigned long NSUInteger; #else typedef int NSInteger; typedef unsigned int...’ is only available on iOS 11.0 or newer 加一个判断 if (@available(iOS 11.0, *)){} else{} 10、库支持版本过高 warning

    68910

    iOS 代码规范

    : (void(^)(NSData *data, NSError *error))completion; 这里Block有一个NSData参数,一个NSError参数并没有返回值 typedef void...*)viewModel; 面向协议编程 如果某些功能(方法)具备可复用性,我们就需要将它们抽取出来放入一个抽象接口文件(在iOS,抽象接口即协议),让不同类型对象遵循这个协议,从而拥有相同功能。...iOS 中委托设计 1. 要区分好代理和数据源区别 在iOS开发委托模式包含了delegate(代理)和datasource(数据源)。虽然二者同属于委托模式,但是这两者是有区别的。...在UITableViewDataSource,就有标准数据源方法: - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView...单例不能作为容器对象来使用 单例对象不应该暴露出任何属性,也就是说它不能作为让外部存放对象容器。它应该是一个处理某些特定任务工具,比如在iOSGPS和加速度传感器。

    2.4K20

    iOS翻页视图控制器UIPageViewController应用

    iOS翻页视图控制器UIPageViewController应用 一、引言     UIPageViewController是iOS少见动画视图控制器之一,通过它既可以创建类似UIScrollView...,枚举如下: typedef NS_ENUM(NSInteger, UIPageViewControllerTransitionStyle) {     UIPageViewControllerTransitionStylePageCurl...上面初始化方法UIPageViewControllerNavigationOrientation属性设置翻页方向,枚举如下: typedef NS_ENUM(NSInteger, UIPageViewControllerNavigationOrientation...属性有些难于理解,其枚举如下: typedef NS_ENUM(NSInteger, UIPageViewControllerSpineLocation) {     //对于SCrollView类型滑动效果... NS_AVAILABLE_IOS(6_0); 五、UIPageViewControllerDelegate中方法解析 //翻页视图控制器将要翻页时执行方法 - (void)pageViewController

    2.2K10

    iOS-代码规范

    : (void(^)(NSData *data, NSError *error))completion;B 这里Block有一个NSData参数,一个NSError参数并没有返回值 typedef void...*)viewModel; 面向协议编程 ---- 如果某些功能(方法)具备可复用性,我们就需要将它们抽取出来放入一个抽象接口文件(在iOS,抽象接口即协议),让不同类型对象遵循这个协议,从而拥有相同功能...iOS 中委托设计 ---- 1. 要区分好代理和数据源区别 在iOS开发委托模式包含了delegate(代理)和datasource(数据源)。虽然二者同属于委托模式,但是这两者是有区别的。...在UITableViewDataSource,就有标准数据源方法: - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView...单例不能作为容器对象来使用 单例对象不应该暴露出任何属性,也就是说它不能作为让外部存放对象容器。它应该是一个处理某些特定任务工具,比如在iOSGPS和加速度传感器。

    2.2K20

    iOS中表视图(UITableView)使用详解

    iOSUITableView使用总结 一、初始化方法 - (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style...;   这个方法初始化表视图frame大小并且设置一个风格,UITableViewStyle是一个枚举,如下: typedef NS_ENUM(NSInteger, UITableViewStyle)...scrollPosition参数决定定位相对位置,它使一个枚举,如下: typedef NS_ENUM(NSInteger, UITableViewScrollPosition) {     UITableViewScrollPositionNone...:(UITableViewRowAnimation)animation; animation参数是一个枚举,枚举动画类型如下 typedef NS_ENUM(NSInteger, UITableViewRowAnimation...IOS为我们提供了下面两个函数解决这个问题: 开始块标志 - (void)beginUpdates; 结束快标志 - (void)endUpdates;  我们可以将我们要做操作全部写在这个块,那么

    1.4K30

    Object-C黑魔法

    自己一直对于系统很多语法很好奇,就是系统宏定义语法,不知道干什么,今天研究一下,以后可以能继续追加。错误地方请大神指正留言,我会尽快修改!...但是OC里面没有这个特征,因为在XCODE6.3之后出现新关键词定义用于OC转SWIFT时候可以区分到底是什么类型 __nullable && ___nonnull __nullable指代对象可以为...,也增加了两个相应特性,因此上例items属性可以如下声明: @property (nonatomic, copy, nonnull) NSArray * items; 当然也可以用以下这种方式:...不过,为了安全起见,苹果还制定了几条规则: typedef定义类型nullability特性通常依赖于上下文,即使是在Audited Regions,也不能假定它为nonnulla。...(2_0,7_0) 代表开始于IOS2.0废弃于IOS7.0 也就是>=2.0 <=7.0 __TVOS_PROHIBITED 代表这个枚举或者类,方法,参数在TVOS系统上面不能使用 typedef

    1.3K10

    iOS相机、麦克风等权限判断与设置

    一、iOS应用权限检测 在涉及到这个问题时候,首先为了适配iOS10系统,我们必须首先在info.plist文件声明将要用到权限,否则将会引起崩溃如下: “This app has crashed...1.相机与麦克风 检测相机与麦克风权限需要导入AVFoundataion框架 #import /** //相机、麦克风授权状态 typedef...相机授权成功执行方法 @param noPermission 相机授权失败或者未授权执行方法 */ + (void)checkCameraAuthorizationGrand:(void (^...#import //相册授权状态 typedef NS_ENUM(NSInteger, PHAuthorizationStatus) { PHAuthorizationStatusNotDetermined...应用跳转权限设置 在iOS8以后系统,跳转设置使用如下方法: + (void)requetSettingForAuth{ NSURL *url = [NSURL URLWithString:

    3.7K60

    NSInteger说开去

    坏习惯开端 初写iOS时,我做是把原项目从Android端移植到iOS端。因为涉及到不同语言,又因为不熟悉iOS,加上还要与用C写网络库进行纠缠,我小心翼翼用了基本数据类型完成大多数编码。...当时就索性一股脑用C语言基本数据类型去做了。现在想想我入门iOS过程真是坎坷呢,留下了一堆烂毛病。 不过好在我现在开始拼命多看资料,一点点把走弯路走回来。...这里不得不吐槽一下这本书,当初就是看这本书了解O-C语法,可书上介绍与代码全是int,完全没见NSInteger影子。可见学习这事不能只靠一本书,毕竟书内容覆盖面有限。...TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64 typedef long NSInteger; typedef unsigned...long NSUInteger; #else typedef int NSInteger; typedef unsigned int NSUInteger; #endif 这段定义是说如果程序是在64位系统下运行

    96010

    iOS 面试策略之语言工具-Objective-C

    加分回答: 内存泄漏可以用 Xcode Debug Memory Graph 去检查: [image] 同时 Xcode 也会在 runtime 自动汇报内存泄漏问题: [image] 3.请说明并比较以下关键词...关键词:#回调 在 iOS 开发,block 和代理都是回调方式。...下面是正确代码: typedef NS_ENUM(NSInteger, CustomerType){ CustomerTypeNormal; CustomerTypeVIP; }; @Interface...上面的代码,两个指针指向不同对象,尽管它们值相同。但是 iOS 编译器优化了内存分配,当两个指针指向两个值一样 NSString 时,两者指向同一个内存地址。...runloop mode 主要用来指定事件在 runloop 优先级,有以下几种: Default(NSDefaultRunLoopMode):默认,一般情况下使用; Connection(NSConnectionReplyMode

    68420

    iOS UITableViewCell使用详解

    iOSUITableViewCell使用详解 - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString...*)reuseIdentifier; Cell初始化方法,可以设置一个风格和标识符,风格枚举如下: typedef NS_ENUM(NSInteger, UITableViewCellStyle)...(cell最右侧显示视图) 枚举如下: typedef NS_ENUM(NSInteger, UITableViewCellAccessoryType) {     UITableViewCellAccessoryNone...)willTransitionToState:(UITableViewCellStateMask)state; cell状态将要转换时调用函数,可以在子类重写 - (void)didTransitionToState...:(UITableViewCellStateMask)state; cell状态已经转换时调用函数,可以在子类重写,状态枚举如下: typedef NS_OPTIONS(NSUInteger, UITableViewCellStateMask

    1.1K20

    iOS使用UIImagePickerController调用系统相机、相册与图库

    : //判断是否支持某个数据提供类型 /* UIImagePickerControllerSourceType枚举定义如下: typedef NS_ENUM(NSInteger, UIImagePickerControllerSourceType...:(UIImagePickerControllerSourceType)sourceType; //判断所支持相机设备 /* typedef NS_ENUM(NSInteger, UIImagePickerControllerCameraDevice...NS_AVAILABLE_IOS(4_0); //判断相机设备支持媒体模式 /* 返回值为如下枚举: typedef NS_ENUM(NSInteger, UIImagePickerControllerCameraCaptureMode..._0, 3_0); //相机录像或者从图库相册选择视频完成后触发回调方法 info字典是具体信息 - (void)imagePickerController:(UIImagePickerController...- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker; 上面方法编辑字典与信息字典,约定好了一些键值对

    2.4K10

    iOS视频功能模块开发 原

    iOS视频功能模块开发 一、使用MPMoviePlayerController进行视频播放         MPMoviePlayerController是iOS中进行视频播放开发一个控制类,里面涵盖了视频播放中大部分需求功能...,枚举如下: typedef NS_ENUM(NSInteger, MPMovieRepeatMode) {     MPMovieRepeatModeNone,//播放结束后不循环     MPMovieRepeatModeOne...,枚举定义如下: typedef NS_ENUM(NSInteger, MPMovieScalingMode) {     MPMovieScalingModeNone,       // 无缩放     ...,枚举如下: typedef NS_ENUM(NSInteger, MPMovieSourceType) {     MPMovieSourceTypeUnknown,//类型未知     MPMovieSourceTypeFile...获取视频某一些时间点缩略图,参数枚举如下,生成缩略图数据回调在后面的通知详说: typedef NS_ENUM(NSInteger, MPMovieTimeOption) {     MPMovieTimeOptionNearestKeyFrame

    1.1K70
    领券