Objective-C 为什么会报错没有这个 self 方法-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Objective-C 为什么会报错没有这个 self 方法

2016-07-27 16:50:58 1523 2

screenshot
为什么下面用self会报错,请指教。
是不是太简单了!

取消 提交回答
全部回答(2)
  • 世界线跳跃者
    2019-07-17 20:00:51

    max rank是个类方法,setRank是个实例方法,在setRank里面的self是实例对象,而实例对象没有这个类方法。
    简单的解法:1.maxRank改成实例方法(+ -> -) 2. [[self class] maxRank]

    0 0
  • a123456678
    2019-07-17 20:00:51

    仔细看看,maxRank方法前面是“+”号而不是“-”号,也就是说你把maxRank定义成类方法(相当于Java里的static函数)了。类方法是不能访问实例变量和属性的。

    应该把这里的“+”改成“-”。

    另:getter和setter里是可以用self的。不过显然,例如在属性foo的getter和setter里,应该用_foo,而不能用self.foo。否则self.foo又会调用foo的getter和setter,会造成无限递归调用的。

    0 0
添加回答
相关问答

1

回答

10个迷惑新手的Cocoa,Objective-c开发难点和问题? 400 报错

2020-05-31 00:44:28 412浏览量 回答数 1

1

回答

Cocoa,Objective-c开发难点和问题有哪些??

2016-07-01 19:10:07 1621浏览量 回答数 1

4

回答

新手学习IOS开发,现在是选择Objective-C还是Swift

2016-06-29 09:51:12 3083浏览量 回答数 4

1

回答

遇到 Misplaced elif directive 怎么解决?c报错

2020-05-29 11:01:20 226浏览量 回答数 1

1

回答

遇到Error directive :xxx 怎么解决?c报错

2020-05-29 11:02:39 279浏览量 回答数 1

1

回答

遇到: Bad ifdef directive synatax怎么解决?c报错

2020-05-29 09:50:44 189浏览量 回答数 1

1

回答

greenplum扩容节点时出现了较多的WARNING以及报错

2019-04-25 14:54:14 1837浏览量 回答数 1

1

回答

objective-c 调用第三方c语言库

2016-06-08 19:11:52 2069浏览量 回答数 1

1

回答

在objectiveC中两个类的协议

2016-05-27 10:46:49 1371浏览量 回答数 1

2

回答

关于 objective-c中,通知机制可以一对多,代理为什么不能?

2016-03-06 10:16:19 2276浏览量 回答数 2
+关注
0
文章
14879
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载