程序员必知:一个不小心犯的指针错误

简介: 程序员必知:一个不小心犯的指针错误

尝试达到下面的效果:

输入框输入字符,单击按钮改变label框的值:

ViewController.h

//代码效果参考:http://www.zidongmutanji.com/bxxx/431090.html

1 #import

2

3 @interface ViewController : UIViewController

4

5 @property (nonatomic,assign) IBOutlet UITextField input1;

6 @property (nonatomic,assign) IBOutlet UILabel output1;

7

8

9 - (IBAction)click1;

10 @end

ViewController.m

1 #import "ViewController.h"

2

3 @interface ViewController ()

4

5 @end

6

7 @implementation //代码效果参考:http://www.zidongmutanji.com/zsjx/573773.html

ViewController

8

9 - (void)viewDidLoad {

10 【super viewDidLoad】;

11 // Do any additional setup after loading the view, typically from a nib.

12 }

13

14 - (void)didReceiveMemoryWarning {

15 【super didReceiveMemoryWarning】;

16 // Dispose of any resources that can be recreated.

17 }

18 - (void)click1{

19 // NSString input1 = _input1.text;

20 // NSString output1 = _//代码效果参考:http://www.zidongmutanji.com/zsjx/295237.html

output1.text;

21 // output1 = input1;

22 NSString input1 = _input1.text;

23 _output1.text = input1;

24 NSString output1 = _output1.text;

25

26

27 NSLog(@"test:%@,%@",input1,output1);

28

29

30 }

31

32 @end

click1方法里面我一开始是写的注释掉的3行,运行后正常打印,但是label的text值并未改变。原因是"output1 = input1"只是改变了output1指向 而已,使output1这个指向了input1所指向的地址,而_output1的set方法并不会被调用。好吧,我也不知道为什么开始会那样写orz.

相关文章
|
Unix Linux
`grep`命令进行文本搜索并忽略大小写
`grep`命令进行文本搜索并忽略大小写
778 2
|
机器学习/深度学习 算法 测试技术
处理不平衡数据的过采样技术对比总结
在不平衡数据上训练的分类算法往往导致预测质量差。模型严重偏向多数类,忽略了对许多用例至关重要的少数例子。这使得模型对于涉及罕见但高优先级事件的现实问题来说不切实际。
499 0
|
Kubernetes Linux Shell
CentOS7下快速搭建K8s集群实践
CentOS7下快速搭建K8s集群实践
844 1
CentOS7下快速搭建K8s集群实践
|
7月前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
机器学习/深度学习 并行计算 算法
GPU加速与代码性能优化:挖掘计算潜力的深度探索
【10月更文挑战第20天】GPU加速与代码性能优化:挖掘计算潜力的深度探索
|
存储 JavaScript 前端开发
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
352 0
|
消息中间件 大数据 Kafka
Kafka消息封装揭秘:从Producer到Consumer,一文掌握高效传输的秘诀!
【8月更文挑战第24天】在分布式消息队列领域,Apache Kafka因其实现的高吞吐量、良好的可扩展性和数据持久性备受开发者青睐。Kafka中的消息以Record形式存在,包括固定的头部与可变长度的消息体。生产者(Producer)将消息封装为`ProducerRecord`对象后发送;消费者(Consumer)则从Broker拉取并解析为`ConsumerRecord`。消息格式简化示意如下:消息头 + 键长度 + 键 + 值长度 + 值。键和值均为字节数组,需使用特定的序列化/反序列化器。理解Kafka的消息封装机制对于实现高效、可靠的数据传输至关重要。
432 4
|
机器学习/深度学习 自然语言处理 PyTorch
PyTorch 在自然语言处理中的应用案例研究
【8月更文第27天】PyTorch 是一个强大的开源机器学习框架,它为开发者提供了构建和训练深度学习模型的能力。在自然语言处理(NLP)领域,PyTorch 提供了一系列工具和库,使开发者能够快速地实现和测试新的想法。本文将介绍如何使用 PyTorch 来解决常见的 NLP 问题,包括文本分类和机器翻译,并提供具体的代码示例。
303 2
|
存储 Oracle 关系型数据库
Flink CDC在处理数据时,会将字段名转换为小写
【2月更文挑战第15天】Flink CDC在处理数据时,会将字段名转换为小写
355 3