【发布时间】:2011-09-01 18:03:41
【问题描述】:
直到昨晚更新 Xcode,这一切都很好(尽管可能是靠运气!)。
在分配委托时,我的 UITextViews、Fields 和 UIPickerViews 现在出现错误:
[m_textField setDelegate:GAMESTATE->glView.self];
m_textField 被定义为 UITextField*。 glView 被定义为 UIView*。为了简单起见,我对整个应用程序只使用一个 UIView(也可能是一个问题)。我只需要访问应用程序中的几个基本操作即可从用户那里获取简单的文本信息。现在我得到了错误:
Cannot initialize a parameter of type 'id<UITextFieldDelegate>' with an rvalue of type 'UIView*'
就像我说的,我可能一开始就做错了什么,而且只能靠纯粹的愚蠢运气!如果有帮助,我已经将我的 UIView 子类化为 Accelerometer Delegate,如下所示:
@interface GLView : UIView <UIAccelerometerDelegate>
任何帮助、建议或提示将不胜感激。今天早上我偶然翻阅了一些书,并复习了几个 Apple 文档,但似乎不可能快速解决。我不反对重构我从用户那里获取输入的方式,我可以只用一只手到达那里。
【问题讨论】:
-
我不确定他们的情况。什么是游戏状态?为什么你在 glView 上调用 .self。如果您发布更多代码或应用程序结构的大纲,我认为我们可以提供更多帮助。您要使用的委托是什么对象?
-
GAMESTATE 是我使用的全局单例 - 我必须承认,传递代表的方式非常糟糕。现在我看到了 Nekto 的以下建议对我来说更有意义。我一直在绕过像这样的 iOS 特定操作的正确实现,但从现在开始我真的需要正确地做到这一点。让我看看这能不能解决问题……
标签: iphone xcode uiview delegates uitextview