OC菜鸟:OC中实例变量可以定义为static么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OC菜鸟:OC中实例变量可以定义为static么?相关的知识,希望对你有一定的参考价值。

实例变量可以定义为static类型么?
1.......-(NSString*)show

NSLog (@"dfdfd");

2.......+(void)show

return(@"dfdfd");
3.....
.-(NSString*)show

return(@"dfdfd");
上面三个哪个对哪个错为什么

1.......-(NSString*)show

NSLog (@"dfdfd");

需要返回一个字符串,你在这里打印没有返回,明显是不对的

2.......+(void)show

return(@"dfdfd");

返回空,但是你反回字符串,也是不对的

3.....
.-(NSString*)show

return(@"dfdfd");

这个是对的
参考技术A 在Java中有static方法,就是不需要创建对象光用类名就可以调用的方法。
这种方法相对于OC中就是如2所示的前面是“+”的方法。(方法就是函数的意思)
参考技术B 快快快快快

OC中私有方法和私有变量

OC中的类方法只有两种,静态方法和实例方法,按照面向对象的逻辑,只有有用的东西,才暴露在外部,在OC中,所有的实例默认都是私有的,所有的实例方法默认都是公有的,可能有人会问,不是有的属性直接就可以拿来用吗,但是,那是属性,不是实例变量.比如A类里面有个B类属性,我们在主界面中,定义了一个A类的实例变量,确实是可以用点语法来给A的B类属性赋值,但是其实并没有拿到这个B类对象,只是通过set方法来对A里面的B类对象来赋值而已,没有直接拿到它,他还是A自己的.

以上是关于OC菜鸟:OC中实例变量可以定义为static么?的主要内容,如果未能解决你的问题,请参考以下文章

OC中extern、static、const和宏定义

菜鸟求问,IOS和SWIFT的疑问

OC 中static、const理解

iOS中OC面试题整理

OC中私有方法和私有变量

理解 OC 中实例变量(Instance variables)和属性(property) 的区别