SEL与NSLog

2024-03-04 21:32
文章标签 nslog sel

本文主要是介绍SEL与NSLog,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、 SEL

方法的存储位置

  • 每个类的方法列表都存储在类对象中
  • 每个方法都有一个与之对应的SEL类型的对象
  • 根据一个SEL对象就可以找到方法的地址,进而调用方法

SEL类型的定义

typedef struct objc_selector    *SEL;

SEL对象的创建

SEL s = @selector(test);
SEL s2 = NSSelectorFromString(@"test");

SEL对象的其他用法

// 将SEL对象转为NSString对象
NSString *str = NSStringFromSelector(@selector(test));Person *p = [Person new];
// 调用对象p的test方法
[p performSelector:@selector(test)];

NSLog输出增强

  • FILE :源代码文件名
  • LINE :NSLog代码在第几行
  • _cmd :代表着当前方法的SEL
// 下面的代码会引发死循环
- (void)test {[self performSelector:_cmd];
}

这篇关于SEL与NSLog的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/774501

相关文章

IOS IMP 和 SEL 区别

SEL:类成员的方法指针,不同于C中的函数指针,SEL只是一个编号。 IMP: 函数指针,指向我们定义的函数 SEL和IMP的关系 任何继承NSObject的类都会的得到runtime的支持,在类中有一个isa指针,指向该类定义的成员组成的结构体,这个结构体是编译时编译器为(NSObject)类创建的,在这个结构体中包含一个指向父类的指针和一个Dispatch table(分发表),这个Disp

iOS 常用的宏:RGB、NSLocalizedString、格式化字符串、发布模式关闭NSLog

文章目录 前言I 常用的宏1.1 RGB颜色1.2 NSLocalizedString国际化1.3 格式化字符串1.4 发布模式关闭NSLog1.5 isIphoneX II 删除指定字符串的方法 前言 颜色国际化 I 常用的宏 1.1 RGB颜色 用法 RGB(40, 174

《Java源码解析》之NIO的Selector机制(Part2:SelectableChannel.register(Selector sel, int ops))

通过上一篇博客,我们知道了Selector机制中的open()函数做了什么,其实也就是创建了一个管道,并把pipe的读写文件描述符放入pollArray中,这个pollArray是Selector的枢纽。下面我们抓取源码看一下channel在selector中注册时做了什么? SelectableChannel.register(Selector sel, int ops) Selectabl

iOS开发 替换NSLog打印设置

在XCode做开发调试时往往需要打印一些调试信息做debug用,大家知道当打印信息的地方多了之后在模拟器上跑可能不会有什么问题,因为模拟器用的是电脑的硬件但是当应用跑在设备上时这些输出语句会在很大程度上影响应用的性能,针对这种问题可以写一些宏来控制这些调试信息的输出。 在release版本禁止输出NSLog内容 因为NSLog的输出还是比较消耗系统资源的,而且输出的数据也可能会暴露出App里的

openssl库的编译安装-SUSE SEL-15

一,简介 OpenSSL ,即open secure sockets layer,是一个开源的安全套接字层的密码库。包括常用的密码加解密算法、常用的密钥算法、证书管理和SSL协议。 1、库的主要内容 OpenSSL 库主要包含三大部分: openssl(/usr/bin): 多用途的命令行工具,可以执行交互或批量命令。e.g. - openssl version 查看版本号. libcryp

iOS release版本中去掉NSLog输出

转载:http://blog.csdn.net/lvmaker/article/details/43450729 最近项目不是很忙,所以又来整理一下代码,首先发现项目中很多地方都用了NSLog,这是不科学的。那必须得解决一下啊,随便一搜索都知道怎么搞了,我just做一个转载: 即:在.pch文件中添加下面一段: #ifndef __OPTIMIZE__ #define NSL

OC中NSLog函数输出格式详解

%@        对象     •    %d, %i   整数     •    %u         无符整形     •    %f          浮点/双字     •    %x, %X  二进制整数     •    %o         八进制整数     •    %zu       size_t     •    %p        指针

[iOS]报错:implicitly declaring library function 'objc_msgSend' with type 'id (id, SEL, ...)'的处理x

Xcode7.3.1下运行项目的时候报错:implicitly declaring library function 'objc_msgSend' with type 'id (id, SEL, ...)' 解决方法:引用 #import <objc/message.h>

【iOS】让NSLog打印字典显示得更好看(解决中文乱码并显示成JSON格式)

前言 文章的初衷很简单,是为了能够正常显示打印出字典里面的中文。因为默认情况下,直接打印字典的话,在Xcode控制台上,中文会是乱码的,需要Unicode转码才能看到中文。 比如打印下面的一个字典 NSDictionary *dict = @{@"ArticleTitle":@"【iOS开发】打开另一个APP(URL Scheme与openURL)",@"ArticleUrl":@"https

System Management Software 1 SEL Fullness

报错信息 在巡检中发现ESXi主机有红色警报,点击到单个主机上提示“其他主机硬件对象的状态”。 通过vCenter监控查看该主机的硬件运行状况,提示“System Management Software 1 SEL Fullness”。 原因 此警告信息是由于ESXi主机上的系统事件日志已满。 通过在ESXi主机上执行 localcli hardware ipmi sel get 命