objective-c - objective-c id *

标签 objective-c cocoa pointers

我在我的 cocoa 应用程序中使用 KVO 验证。我有一个方法

- (BOOL)validateName:(id *)ioValue error:(NSError **)outError

我的控件现在可以验证其绑定(bind)。如何使用 id * NOT id

调用该方法

要使用传入的值(指向字符串指针的指针),我称之为:

NSString * newName = (NSString *)*ioValue;
if ([newName length] < 4) {

否则我会遇到严重的执行崩溃...

通过类型转换传入不起作用:(id *)myStringVar

使用常规 ID 传递也不起作用:(id) myStringVar

最佳答案

NSError *error;
[self validateName:&myStringVar error:&error];

& 符号表示“地址”。在本例中,它是指针的地址,或者换句话说,是指向指针的指针(这就是id*)。

关于objective-c - objective-c id *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2405365/

相关文章:

C++ 变量可见范围和流

iphone - 如何向 Google Reader 发送经过身份验证的请求?

iphone - 应用程式当机:NSInvalidArgumentException

objective-c - 实时获取窗口高度/宽度

objective-c - Cocoa:用图像填充 NSBezierPath

c++ - 程序接收信号 SIGSEGV 段错误

ios - 无法解析协议(protocol)中的类型

iphone - 在 UIWebView 中注释文本

cocoa - 主菜单栏中的菜单项以不同的字体大小显示。什么给出了?

C:通过指针连接字符串