Objective-C 语法之 Debug 表达式
main.m
#import <Foundation/Foundation.h>
#import "TestClass.h" int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *purposeInfo = @"拿到的信息不仅在Debug中有用,而且在selector的传递也很有用";
[TestClass testDebugKeyword:purposeInfo];
}
return ;
}
TestClass.h
#import <Foundation/Foundation.h> @interface TestClass : NSObject
+ (void)testDebugKeyword:(NSString *)purposeInfo; @end
TestClass.m
#import "TestClass.h"
@implementation TestClass
+ (void)testDebugKeyword:(NSString *)purposeInfo {
NSMutableString *mStrInfo = [[NSMutableString alloc] initWithString:purposeInfo];
[mStrInfo appendString:@"\n\nDebug时一些系统预留定义词的用法如下:\n"];
[mStrInfo appendFormat:@"__func__: %s\n", __func__];
[mStrInfo appendFormat:@"__PRETTY_FUNCTION__: %s\n", __PRETTY_FUNCTION__];
[mStrInfo appendFormat:@"__LINE__: %d\n", __LINE__];
[mStrInfo appendFormat:@"__FILE__: %s\n", __FILE__];
[mStrInfo appendString:@"\n\nDebug时一些Core Foundation方法的用法如下:\n"];
[mStrInfo appendFormat:@"NSStringFromSelector(_cmd): %@\n", NSStringFromSelector(_cmd)];
[mStrInfo appendFormat:@"NSStringFromClass([self class]): %@\n", NSStringFromClass([self class])];
[mStrInfo appendFormat:@"[[NSString stringWithUTF8String:__FILE__] lastPathComponent]: %@\n", [[NSString stringWithUTF8String:__FILE__] lastPathComponent]];
NSLog(@"%@", mStrInfo);
}
@end
结果:
-- ::16.353 OCDebugKeyword[:] 拿到的信息不仅在Debug中有用,而且在selector的传递也很有用 Debug时一些系统预留定义词的用法如下:
__func__: +[TestClass testDebugKeyword:]
__PRETTY_FUNCTION__: +[TestClass testDebugKeyword:]
__LINE__:
__FILE__: /Users/Kenmu/Documents/iOSDevelopment/OCDebugKeyword/OCDebugKeyword/TestClass.m Debug时一些Core Foundation方法的用法如下:
NSStringFromSelector(_cmd): testDebugKeyword:
NSStringFromClass([self class]): TestClass
[[NSString stringWithUTF8String:__FILE__] lastPathComponent]: TestClass.m
Objective-C 语法之 Debug 表达式的更多相关文章
- Linq To Sql中实现Left Join与Inner Join使用Linq语法与lambda表达式
当前有两个表,sgroup与sgroupuser,两者通过gKey关联,而sgroup表记录的是组,而sgroupuser记录是组中的用户,因此在sgroupuser中不一定有数据.需要使用Left ...
- JAVA基础之JDBC开发、JSTL语法、EL表达式与数据分页
一.直接使用JDBC开发的问题 1.当表中的列很多时,需要写很长的SQL语句 还需要写大量 setXXX() 设置参数语句 读取数据时还需要写大量setXXXX()设置属性语句 2.非常容易出错,而且 ...
- 初学Objective - C语法之代码块(block)
一.block声明 1.无参数,无返回值: void (^sayHi)(); 2.有参数,有返回值: NSInteger (^operateOfValue)(NSInteger num); block ...
- Python 基础语法——数字和表达式(包含数学上的一些函数)
>>> 2+2 4 >>> 1/2 0 >>> 1.0/2.0 0.5 >>> 1/2.0 0.5 >>> 1 ...
- Linq之查询表达式语法详解
1.闲言碎语 由于项目的需要接触到Linq,刚开始有些不适应,好多概念都很模糊.不过经过一段时间的摸索,慢慢地对Linq有了一个更加深入的了解.在此记录一下备忘. 2.查询表达式语法 执行L ...
- EL表达式的语法与应用
EL(是Expression Language的缩写),使用EL对JSP输出进行优化,可以使得页面结构更加清晰,代码可读性高,也更加便于维护. EL表达式的语法: 语法:$(EL 表达式) $ 和 ...
- EL表达式的语法介绍及九大隐含对象
一. 简介 > JSP表达式 <%= %> 用于向页面中输出一个对象. > 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段. > 使用EL表达式来代 ...
- JS基础语法---分支语句之:三元表达式
获取两个数字中的最大值 用if-else语句 var num1 = 10; var num2 = 100; if (num1 > num2) { ...
- JavaScript表达式和运算符 —— 基础语法(4)
JavaScript基础语法(4) 运算符 运算符用于将一 个或者多个值变成结果值. 使用运算符的值称为操作数,运算符和操作数的组合称为表达式 JS中的运算符可以分成下面几类: 算术运算符 逻辑运算符 ...
随机推荐
- java框架篇---struts实现拦截器
Struts2的拦截器和Servlet过滤器类似.在执行Action的execute方法之前,Struts2会首先执行在struts.xml中引用的拦截器,在执行完所有引用的拦截器的intercept ...
- TCC分布式事务
https://github.com/changmingxie/tcc-transaction
- jsPatch.qq.com呵呵
jsPach.qq.comhtml, body {overflow-x: initial !important;}html { font-size: 14px; } body { margin: 0p ...
- PHP写的一个轻量级的DI容器类(转)
理解什么是Di/IoC,依赖注入/控制反转.两者说的是一个东西,是当下流行的一种设计模式.大致的意思就是,准备一个盒子(容器),事先将项目中可能用到的类扔进去,在项目中直接从容器中拿,也就是避免了直接 ...
- Cacti的库表结构-Data
cacti 的数据都是存放在rrdtool 中的,数据库存放的其实只是配置数据,cacti 的逻辑对象主要分为三种,data (数据).graph (图片).host (设备),这在它的表设计中也能很 ...
- undefined reference to `clock_gettime'编译错误的解决办法
解决办法如下
- java的几种对象(PO,VO,DAO,BO,POJO)解释 【转】
java的几种对象(PO,VO,DAO,BO,POJO)解释 一.PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中 ...
- Microsoft.AspNet.Identity.EntityFramework/IdentityDbContext.cs
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; ...
- Hbuilder开发app实战-识岁03-文件上传
前言 做app不得不谈的问题就是文件上传.用hbuilder开发app让上传变的非常easy. Uploader Uploader模块管理网络上传任务,用于从本地上传各种文件到server,并支持跨域 ...
- 助你简化开发的 jQuery 插件
Vanity Toolset vanity toolset是一套方便的UI工具集,可以帮助你快速的搭建幻灯,聚光灯,占位,收放相关的UI,它完成了大部分的UI功能,你只需要花费很少时间就可以构建一个完 ...