iOS 带参数函数体和不带参数函数体的实现与xcode单步调试

这里举个简单的例子,为了大家的理解,使用了单步调试

Xcode 的中的单步调试是很好用的,我们可以用他来进行程序的纠错

很方便我们找到错误的根源,是程序员必备的一种技能

解决问题需要我们设置断点,然后进行单步调试,遇到方法体,我们可以跳入到

方法体内部,这样便于我们查找每个变量值的变化,和函数实现的具体步骤

更能清晰的理解我们写出的程序执行的步骤

首先我先将简单的代码贴出来 ,虽然简单,但是大家一定要掌握调试的强大功能

定义了一个Calcultor类

有两个成员变量

有两个方法

main.m

#import <Foundation/Foundation.h>
#import "Calcultor.h"
int main(int argc, const char * argv[])
{

    Calcultor * cal = [[Calcultor alloc]init];

    [cal setA:10];
    [cal setB:20];

    NSLog(@"%d",[cal add]);

    NSLog(@"%d",[cal sub:10 andb1:10]);

    return 0;
}

Calcultor.h

#import <Foundation/Foundation.h>

@interface Calcultor : NSObject
{
    int _a;
    int _b;
}
@property int a;
@property int b;

-(int)add;

-(int)sub:(int)a1 andb1:(int)b1;

@end

Calcultor.m

#import "Calcultor.h"

@implementation Calcultor

-(int)add
{
    return _a + _b;
    //NSLog(@"a+b");
}

-(int)sub:(int)a1 andb1:(int)b1;
{
    //_a = a1;
    //_b = b1;
    return _a + _b;
}
@end

第一步:设置断点

第二步:command + R 开始执行

进入调试状态,我们可以看到左下方有个调试窗口,这时还没有执行,所以a b 的初始值都是0,这里是调用了父类的构造方法对成员变量进行赋值

第三步按照以下操作进行单步调试

第四步:进入函数体内部

第五步:进入add 函数体内部

第六步:点击下一步跳出函数体回到main 函数

分享给大家有用的干货,共同学习

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-29 09:23:17

iOS 带参数函数体和不带参数函数体的实现与xcode单步调试的相关文章

nginx rewrite arg 带问号的地址转发参数处理?Nginx重定向的参数问题

Nginx重定向的参数问题 在给某网站写rewrite重定向规则时,碰到了这个关于重定向的参数处理问题.默认的情况下,Nginx在进行rewrite后都会自动添加上旧地址中的参数部分,而这对于重定向到的新地址来说可能是多余.虽然这也不会对重定向的页面显示结果造成多少影响,但当你注意到新地址中包含有多余的"?xxx=xxx"时,心里总还是会觉得不爽.而且可能影响到网站的搜索优化SEO.那么该如何来处理这部分的内容呢?看了下面两个简单的例子你就会明白了. 例如:把http://exampl

页面跳转带参数ip接收后ip参数被修改

1.某些情况下,页面请求带有ip参数,但是接收到ip参数时ip已经被修改,目前已在微信内置浏览器发现,chrome浏览器发现 例如请求链接地址:如下 http://www.example.com/url?expire_time=24h&extend_params=extend_params&extra_common_param=extParam_platform=1&fee=100&ip=111.206.125.33&notify_url=xxx 2.接收到后 ja

thymeleaf的初次使用(带参请求以及调用带参js方法)

之前对于前端框架接触较少,第一次接触thymeleaf,虽说看起来并不复杂但我还是花费了好一会儿才弄懂. 话不多少下面就简单说一下我在项目中的应用. 首先是java代码 controller层 将需要在前端展示的信息放入model中: @RequestMapping("getAll") public String getAll(Model model){ List<ScheduleJob> list = scheduleJobService.getAllJob(); mod

ioctlsocket()函数是干什么用的?它返回值是什么?共有几个参数?它的各个参数是干什么用的?

1. ioctlsocket()  简述:   控制套接口的模式. #include <winsock.h> int PASCAL FAR ioctlsocket( SOCKET s, long cmd, u_long FAR* argp); s:一个标识套接口的描述字.   cmd:对套接口s的操作命令.   argp:指向cmd命令所带参数的指针. 注释:   本函数可用于任一状态的任一套接口.它用于获取与套接口相关的操作参数,而 与具体协议或通讯子系统无关.支持下列命令:   FIONB

《带你装B,带你飞》pytest成神之路2- 执行用例规则和pycharm运行的三种姿态

1. 简介 今天北京下的雪好大好美啊!!!哎呀,忘记拍照片了,自己想象一下吧.言归真传,今天还是开始pytest的学习和修炼,上一篇写完后群里反响各式各样的,几家欢乐几家愁,有的高兴说自己刚好要用到了,正好一起学习,有的不开心说自己接口还没有学完了,没关系的学习本来就不是一件一蹴而就的事情,需要日积月累,不要灰心.慢慢的来,多花点时间,争取赶上来就好了.嘿嘿!喝了宏哥的毒鸡汤是不是充满活力,感觉好多了.好,那就开始今天的学习吧!今天主要学习一下pytest的执行用例的规则. 2. 通过help帮

php编译参数注解--不明白许多参数的作用 慎用 –with-curlwrappers参数

在Linux下安装PHP,源代码方式安装,总需要配置很多参数.这里列出常用配置参数,并详细用中文解释说明了.给大家一些参考 编译PHP的时候慎用 –with-curlwrappers参数 ./configure --prefix=/usr/local/PHP                                   php 安装目录 --with-apxs2=/usr/local/apache/bin/apxs     表示使用apache2.0以上版本,apxs表示使用的apache

JS调用C#后台函数获得后台参数(html获得C#参数)

    C#有自己的后台控件,跟后台交互很简单和方便,但有的时候不得不用html控件,要如何与后台交互是个问题.例如html获得后台参数后传到PHP进行数据库操作.下面简单介绍JS调用后台函数获得要传到前台的参数 C#后台代码(Default.aspx.cs): 1 public string getParameter() 2 { 3 string parameter = "这是要传到前台的参数"; 4 return parameter; 5 } Default.aspx部分代码: 注

[python][oldboy]关键字参数和位置参数,默认参数,可变长参数(无名,有名)

关键字参数和位置参数是在函数调用的时候定义 关键字参数是以键-值对出现,无序,多一个不行,少一个不行 位置参数,有序,多一个不行,少一个不行 混搭:所有位置参数必须在关键字参数的左边 默认参数是在函数定义的定义,在函数调用的时候可以不用传改参数 可变长参数:*args, **kwargs 可变长参数和位置参数的混搭 1 def add(x,y): 2 return x + y 3 def add_1(x=0, y=1): 4 return x + y 5 6 def list_add(x, *a

有默认参数的函数,默认参数为何需后置

学习python时思考的一个问题. http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431752945034eb82ac80a3e64b9bb4929b16eeed1eb9000 默认参数可以省略用户输入. 当存在多个默认参数时,如果默认参数在前:如foo(a=1,b=2,c=3,x) 调用:foo(5) 当只有一个实参传入,编译器不知道是改变默认参数值,还是给x. 但也许