首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么NSEnumerator迭代器不能识别DrawRect中的对象属性?

为什么NSEnumerator迭代器不能识别DrawRect中的对象属性?
EN

Stack Overflow用户
提问于 2009-08-18 10:07:04
回答 2查看 373关注 0票数 1

在NSEnumerator sdk中使用iPhone通常没有问题,但这是我第一次在UIView的DrawRect函数中使用它。NSEnumerator迭代器导致错误:请求成员“(成员)”,而不是结构或联合。

( 1)为何会出现这种情况?

2)我怎样才能解决这个问题?

(P.S.未被识别的成员是NSObject子类的一个正确声明和合成的属性,该子类的.h文件被正确导入到UIView .m文件中,而drawRect函数调用NSEnumerator)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-18 12:03:58

很难说不看代码。但通常,当您有如下内容时,编译器会发出该错误:

代码语言:javascript
复制
@interface MyClass : NSObject {
  int someValue;
}
@end

……然后在实施中..。

代码语言:javascript
复制
MyClass *aPointer;

int index = aPointer.someValue;

在这种情况下,你真的会想

代码语言:javascript
复制
int index = aPointer->someValue;

显然,对于属性,语法略有不同。您断言该属性是正确声明和合成的,但编译器显然不同意。不过,我不确定在没有看到一些代码摘录的情况下,人们能给你多少帮助。NSEnumerator本身不可能识别您的成员是非常不可能的。相反,您在迭代器上下文中编写的一些代码有一个错误。

票数 1
EN

Stack Overflow用户

发布于 2009-08-18 13:10:10

需要记住的另一件事是,NSEnumerator返回ids,而不是对象指针(除非您正在转换它们)。id没有属性,因此访问id上的属性的任何尝试都将失败。正如peterb所说,在这里看到代码会有很大帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1292974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档