NSlog输出

NSLog的定义

  void NSLog(NSString *format, …);

  基本上,NSLog很像printf,同样会在console中输出显示结果。不同的是,传递进去的格式化字符是NSString的对象,而不是char *这种字符串指针。

实例

  NSLog可以如下面的方法使用:

  NSLog (@"this is a test");

  NSLog (@"string is :%@", string);

  NSLog (@"x=%d, y=%d", 10, 20);

  但是下面的写法是不行的:

  int i = 12345;

  NSLog( @"%@", i );

  原因是, %@需要显示对象,而int i明显不是一个对象,要想正确显示,要写成:

  int i = 12345;

  NSLog( @"%d", i );

格式

  NSLog的格式如下所示:

  %@ 对象

  %d, %i 整数

%u 无符整形

%f 浮点/双字

%x, %X 二进制整数

%o 八进制整数

%zu size_t%p 指针

%e 浮点/双字 (科学计算)

%g 浮点/双字

%s C 字符串

%.*s Pascal字符串

%c 字符

%C unicha

r%lld 64位长整数

(long long)%llu 无符64位长整数

%Lf 64位双字

1\几个 CGRect 函数例子

1.CGRectOffset使用从源CGRect偏移的原点来创建矩形
        float offset = 25.0;
    CGRect r1 = CGRectMake(100, 100, 100, 100);
    CGRect r2 = CGRectOffset(r1, offset, offset);

2.CGRectIntersectsRect允许我们确定两个矩形是否相交
    float offset = 25.0;
    CGRect r1 = CGRectMake(100, 100, 100, 100);
    CGRect r2 = CGRectMake(150, 150, 100, 100);
    if (CGRectIntersectsRect(r1, r2))
    {
        NSLog(@"intersecting");
    }
3.NSStringFromCGRect可以用来把CGRect显示到控制台
    CGRect r1 = CGRectMake(100, 100, 100, 100);
    NSLog(@"rect:@%",NSStringFromCGRect(r1));  
NSLog(@"rect:%@",NSStringFromCGRect([moduleView frame]));    
NSLog(@"rect:%@",NSStringFromCGRect([navScrollView frame]));
 
同样,CGRectFromString允许我们根据一个字符串创建一个CGRect:
    NSString *r = @"{0,0},{100,100}";
    CGRect r1 = CGRectFromString(r);

使用对应的转换
NSStringFromCGPoint   NSStringFromCGSize   NSStringFromCGRect  NSStringFromCGAffineTransform   NSStringFromUIEdgeInsets
比如
NSLog(@"rect1: %@", NSStringFromCGRect(rect1));

时间: 2024-10-06 11:24:30

NSlog输出的相关文章

类的本质、description方法、SEL、NSLog输出增强

一.类的本质 1.类也是个对象 其实类也是一个对象,是Class类型的对象,简称“类对象” Class类型的定义 typedef struct objc_class *Class; 类名就代表着类对象,每个类只有一个类对象 2.+load和+initialize +load 在程序启动的时候会加载所有的类和分类,并调用所有类和分类的+load方法 先加载父类,再加载子类:也就是先调用父类的+load,再调用子类的+load 先加载元原始类,再加载分类 不管程序运行过程有没有用到这个类,都会调用+

ios 使用xcode调试代码的时候进入断点显示变量全是nil,但NSLog输出那个变量却是有值的

解决办法:把1删掉 2选择debug模式 ios 使用xcode调试代码的时候进入断点显示变量全是nil,但NSLog输出那个变量却是有值的,布布扣,bubuko.com

IOS中(Xcode) DEBUG模式(RELEASE模式)控制NSLog输出,NSLog两种不同情况的输出方式

[新年新气象,2016/01/04] 俺们在开发IOS程序过程中,经常需要用到NSLog输出一些信息,甚至有的开发过程,必须在控制台查看输出,有经验的程序员通过控制台输出就能知道整个数据交互的一个流程.但是一个发布的程序,里面带有太多的NSLog输出,肯定对于App性能有所影响,这时候我们可以使用一个宏定义来处理,在开发的时候使用DEBUG模式,在发布的时候使用RELEASE模式.这样,发布的App就不会在程序内部做大量的NSLog输出了

10-Objective-C特有语法:Category、类对象、description、SEL、NSLog输出增强

一.    分类-Category 1.        基本用途 OC中如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 1>.继承 2>.分类(Category) 2.        格式 分类的声明 @interface 类名 (分类名称) // 方法声明 @end 分类的实现 @implementation 类名 (分类名称) // 方法实现 @end 3.        好处 一个庞大的类可以分模块开发,可以由多个人来编写,更有利于团队合作 给系统自带的类添加分类,例如:

禁止nslog输出(release) 上线

plist文件加入如下代码 #ifndef __OPTIMIZE__  #define NSLog(...) NSLog(__VA_ARGS__)  #else  #define NSLog(...) {}  #endif

IOS 把shell信息或者NSlog输出信息 显示在视图

//标准输出 [self redirectSTD:STDOUT_FILENO]; //错误输出 //[self redirectSTD:STDERR_FILENO]; - (void)redirectNotificationHandle:(NSNotification *)nf{ NSData *data = [[nf userInfo] objectForKey:NSFileHandleNotificationDataItem]; NSString *str = [[NSString allo

description方法 oc 就是NSLog使用

使用场景: 父类的-description默认是调用返回的是“类名+内存地址:” 我们需要重写这个方法: NSLog输出C语言字符串的时候,不能有中文: 打印当前的行号:NSLog(@“%d”,_LINE_); 打印当前文件所处的文件路径:printf(@“%s\n”,_FILE_); 打印指针变量地址:NSLog(@“%p”,&p); 打印对象地址:NSLog(@“%p”,p); 输出当前函数名:NSLog(@“%s\n”,_func_);

IOS调试—断点调试以及动态输出

在开发App的过程中.须要重复的改动和优化我们的代码,特别是当程序出现bug,须要高速的找出错误的原因,进行改动,以保证程序的正确运行. 断点调试,是最经常使用最简单的一种调试方式,能够一步步跟踪程序运行的流程,得到变量的值,高速的找到错误的原因. 1.断点的基本操作 断点的操作很easy,以下通过几张图来介绍一下怎样加入.删除.编辑以及使用断点. 2.全局断点 设置全局断点(异常断点).当遇到错误,Debug程序会自己主动定位到栈底信息,即跳到出错代码所在行. 3.条件断点 设置条件断点.当满

iOS Xcode 打包之后,不能输出日志

现象:一个项目,之前做的好好的,后来打包,生成ipa文件之后, 再运行的时候,NSLog的日志都不输出了. 解决方案: 在模式选择里面,里面包含:“Debug”.“Release”两种,设置“Debug” 原因: 在开发过程中,我们经常需要用到NSLog输出一些信息,甚至有的开发过程,必须在控制台查看输出,有经验的程序员通过控制台输出就能知道整个数据交互的一个流程.但是一个发布的程序,里面带有太多的NSLog输出,打包的时候,模式自动切换到了“Release”.