@synthesize的正确使用方式
@synthesize的正确使用方式
一. @synthesize的错误使用方式
类1和类2是继承关系, name是类1的属性
但是类2的实现里加入了@synthesize name = _name;
导致类1的setName name 方法都被重写了
调用结果: 没有打印任何语句
类1:
#import <Foundation/Foundation.h> @interface MyTestObj : NSObject
@property (nonatomic, strong) NSString *name; @end
#import "MyTestObj.h" @implementation MyTestObj
@synthesize name = _name;
- (void)setName:(NSString *)name
{
_name = name;
NSLog(@"%s invoke", __func__);
}
@end
类2:
#import "MyTestObj.h" @interface MyCartObj : MyTestObj @end
#import "MyCartObj.h" @implementation MyCartObj
@synthesize name = _name; @end
MyCartObj *cart = [[MyCartObj alloc] init];
[cart setName:@"myname"];
调用结果: 没有打印任何语句
原因: 因为类2使用了@synthesize name = _name, 所以 类1的setName name 方法都被重写了;
@synthesize的正确使用方式的更多相关文章
- iOS开发小技巧--相机相册的正确打开方式
		iOS相机相册的正确打开方式- UIImagePickerController 通过指定sourceType来实现打开相册还是相机 UIImagePickerControllerSourceTypeP ... 
- const、static和extern的正确使用方式
		我们在看一些大牛的第三方时,里面会出现很多const.static和extern,尤其是const和static,const和extern的结合使用,直接令很多小伙伴懵逼了,今天就详细讲解一下这三个关 ... 
- Xcode 的正确打开方式——Debugging(转载)
		Xcode 的正确打开方式——Debugging 程序员日常开发中有大量时间都会花费在 debug 上,从事 iOS 开发不可避免地需要使用 Xcode.这篇博客就主要介绍了 Xcode 中几种能 ... 
- 以正确的方式开源 Python 项目
		以正确的方式开源 Python 项目 大多数Python开发者至少都写过一个像工具.脚本.库或框架等对其他人也有用的工具.我写这篇文章的目的是让现有Python代码的开源过程尽可能清 晰和无痛.我不是 ... 
- 以正确的方式开源 Python 项目 - 技术翻译 - 开源中国社区
		以正确的方式开源 Python 项目 - 技术翻译 - 开源中国社区 以正确的方式开源 Python 项目 英文原文:Open Sourcing a Python Project the Right ... 
- 以正确的方式开源 Python 项目(转)
		大多数Python开发者至少都写过一个像工具.脚本.库或框架等对其他人也有用的工具.我写这篇文章的目的是让现有Python代码的开源过程尽可能清晰和无痛.我不是简单的指——“创建一个GitHub库,提 ... 
- IntelliJ IDEA中Mapper接口通过@Autowired注入报错的正确解决方式
		转载请注明来源:四个空格 » IntelliJ IDEA中Mapper接口通过@Autowired注入报错的正确解决方式: 环境 ideaIU-2018.3.4.win: 错误提示: Could no ... 
- C#语法——泛型的多种应用  C#语法——await与async的正确打开方式  C#线程安全使用(五)  C#语法——元组类型  好好耕耘 redis和memcached的区别
		C#语法——泛型的多种应用 本篇文章主要介绍泛型的应用. 泛型是.NET Framework 2.0 版类库就已经提供的语法,主要用于提高代码的可重用性.类型安全性和效率. 泛型的定义 下面定义了 ... 
- Redis实现分布式锁的正确使用方式(java版本)
		Redis实现分布式锁的正确使用方式(java版本) 本文使用第三方开源组件Jedis实现Redis客户端,且只考虑Redis服务端单机部署的场景. 分布式锁一般有三种实现方式: 1. 数据库乐观锁: ... 
随机推荐
- web项目中的跨域问题解决方法
			一种是JSONP 一种是 CORS. 在客户端Javascript调用服务端接口的时候,如果需要支持跨域的话,需要服务端支持. JSONP的方式就是服务端对返回的值进行回调函数包装,他的优点是支持众多 ... 
- ubuntu默认防火墙
			ubuntu 9.10默认的是UFW防火墙,已经支持界面操作了.在命令行运行ufw命令就可以看到提示的一系列可进行的操作. 最简单的一个操作:sudo ufw status可检查防火墙的状态,我的返回 ... 
- 网摘  窗体的旋转效果 wpf
			<Window x:Class="simplewpf.chuantixx" Name="DW1" xmlns="http://s ... 
- IBatis插入类的实例
			<insert id="insOrderDetail" parameterClass="OrderDetail"> INSERT INTO Orde ... 
- c#优化
			优化反射 http://kb.cnblogs.com/page/172119/ http://www.2cto.com/kf/201301/182765.html http://blog.sina.c ... 
- docker mysql
			创建mysql docker容器 github上有一个专门的docker-libary项目,里面有各种各样常用的docker镜像,可以做为学习的示例,今天研究下其中mysql镜像的用法,国内镜像dao ... 
- JavaScript学习笔记——事件
			javascript事件基础和事件绑定 一.事件驱动 1.事件 javascript侦测到的用户的操作或是页面的一些行为(怎么发生的) 2.事件源 引发事件的元素.(发生在谁的身上)3.事件处理程序 ... 
- Linux学习笔记(一)2015.4.13
			研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ... 
- php----显示中文乱码的问题
			条件: 在显示页面设置页面编码格式为<?php header('Content-Type: text/html; charset=utf-8');?>: 在写入数据库时设置:mysql_q ... 
- OpenGL Code Resources
			https://www.opengl.org/wiki/Code_Resources http://ogldev.atspace.co.uk/ 
