【问题标题】:How do I load a method thats in a class from a uiviewcontroller如何从 uiviewcontroller 加载类中的方法
【发布时间】:2011-06-12 22:19:44
【问题描述】:

我正在尝试将 uitextfield 字符串从视图控制器传递到 nsobject 类中的方法...如果您能解释一下我是如何做到这一点的,那就太好了。

到目前为止,我已经完成了以下操作,但仍然遇到很多错误。

NSObject Class dbAccess.h
- (void)passCode:(NSString *)passedCode;

NSObject Class.m
- (void)passCode:(NSString *passedCode {
     myString = passedCodeVaraibel; //myString declared in .h
}

//... 初始化数据库的其他代码。使用 myString 或类似的东西,即使这可能是错误的,这就是我问这个问题的原因

    viewController.m
    //pass myCode textfield string when uitableviewcell is selected.

[dbAccess.passCode myCode.text];

我知道这是不对的,因为它不起作用 :) 但我希望它可以添加更多关于我正在尝试做的事情的细节。

【问题讨论】:

  • 这是一个相当模糊的问题,如果您可以编辑问题以提供更多详细信息,那将很有用。你的意思是NSObject中的类方法吗?哪种方法?您对 Objective-c 和 iOS 编程的熟悉程度如何?
  • 更新更详细希望您理解。
  • 调用应该是[dbAccess passCode:myCode.text];
  • 关于我的` (void)passCode:(NSString *)passedCode {` 这个方法的内容应该是什么样的?就像我在示例中所做的那样?

标签: iphone ios methods uiviewcontroller nsobject


【解决方案1】:

标准的 Objective-c 约定会要求您将方法名称更改为 setPassCode:,但 passCode: 可以正常工作。

我假设这段代码没有编译, 要正确调用方法,请使用以下语法(几个示例):

[target action:argument];
[target action:arg1 anotherParameter:arg2];
[target action]

如果你想设置一个值,显然你想将该值作为参数传入

// DBAccess.m
- (void)setPassCode:(NSString *)newPassCode {
   myString = newPassCode; // myString defined as ivar in .h
}


dbAccess = [[DBAccess alloc] init]; 
// …
[dbAccess setPassCode:textField.text];

【讨论】:

  • 谢谢你,这清楚了我以前读过这个但忘记了,我脑子里乱七八糟的东西让我花了一些时间来整理东西。感谢您提供的示例,我已经在我的项目中进行了所有设置,但是我遇到了一个错误,我现在要研究一下,说我的方法未声明,即使我在 .h 文件中声明了它。
  • 这是错误它保持我的方法是未声明的,然后它在它下面有这个预期的';'在':'令牌之前
  • 真是个布偶……我发现我正在尝试在我制作的另一个布偶中使用该方法……呃!所以将其移出,一切正常。非常感谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
相关资源
最近更新 更多