黑马程序员技术交流社区

标题: 多态,类对象,sel 点语法 @property @synthesize 调试日记 [打印本页]

作者: archdem1    时间: 2015-8-20 21:06
标题: 多态,类对象,sel 点语法 @property @synthesize 调试日记
(1)@interface xxx:xxx{} 别忘了大括号好么?

(2) dog 你想继承animal,咋说你得包含animal.h.

(3)enum xxx{} xxx;中间是大括号.

(4)NSLog(@"%@")@是必备的,打印字符串要用%@

(5)Class 标识符 = [类名称 class ] ;
注意Class开头要大写,[class]括号内的要小写.相当与类调用class方法.
通俗来讲就是给类起一个外号.

(6)set对象方法:(void)set实例变量去掉下划线首字母大写.
:冒号是方法名的一部分!!
(形参类型)方法变量
补充一点,定义方法 -/+对象方法或者类方法(返回值类型)方法名称:(分号注意很容易忘记)(形参类型)形参1 and:(and:为方法体)(形参类型)形参2:以此类推.

(7)对象方法在implementation中实现加{   };

(8)输入字符串常量加@"  "

(9)set 定义 实例变量去掉下划线,并且第一个字母要大写,否则点方法不好用,切记切记.set和get是访问方法,并不直接访问实例变量,正因为这种特性可以改protected变量,还能改private.当然方法和实例变量要在同一类.

(10) 用点方法接收方法值时.例如int x = a.age age方法get要省略不然报错.提示没能在类中找到方法.不理解 是规范还是怎样? ----点方法用get写为何失效未解决!

(11)@property @symthesize类型格式 类别大统计!!
@property (类型) 变量名
@symthesize 变量名
上面两句话等效下面
-(void)set变量名(实例变量首字母大写加下划线):(类型)变量名 {-----调用方法,不访问实例变量
        self->实例变量 = 变量;
    }
-(类型)get变量名[
    return 变量;
}
如果实例变量类型一样可以写在一起格式如下.
@property 类型 变量名1,变量名2...
@synthesize  变量名1 = 实例变量,变量名2 =实例变量2 ...
self->实例变量 = 变量 替换为 实例变量 = 变量.
以上都可以用点方法访问.

只写@proterty增强类型 变量
省略@synthesize 变量 .
自己生成一个变量,自动定义实现方法,且没有下划线的实例变量则自动生成,属性为私有变量.
可以用重写@proterty的setget方法,
在方法中增加一些过滤条件.需要注意的是在增强型getset只能重写一个,否则编译器报错.(你都写完了,让我写个毛?)
----------------------------------------------------------------------
对象调用对象方法,把另一个对象作为参数传递的实质
对象A手下一群人(实例变量) ,对象B手下也有一群人(实例变量),一天B去A地盘踢馆.B选出一人为_name,A选出一人A->_name .因为默认B的地方所以B->可取舍,而A是外来变量所以要自报家门.(A->_name)

对象作为方法参数传递
就是把形参类型改成对象所在类,把对象实参传进来.目前来看只是能访问一下对象包含的实例变量.

对象作为返回值
同上,但返回值类型为对象所在类.返回对象一般都是调用自己的变量.视频里是在对象作为返回值方法中修改对象自身成员变量,在返回对象.可以用别的对象来接收这个对象,此时两个对象同时指向一个类.
或者我把对象做一个处理在返回对象.把处理的算法都封装在方法中.

----------------------------------------------------------------------
Writable atomic property 'name' cannot pair a synthesized getter with a user defined setter
重写get set 方法时候报的警告.什么意思?
----------------------------------------------------------------------
在property中重写get方法不成功,一定要解决!
----------------------------------------------------------------------
在用get写实现方法的时候,点方法在main中不能给变量赋值.提示未找到方法.但却能给实例变量赋值.
----------------------------------------------------------------------
#warning 自行插入警报,方便下次调试.
----------------------------------------------------------------------




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2