相关疑难解决方法(0)

Objective-C传递... nil终止参数列表

...在ObjectiveC中遇到一些问题.

我基本上包装一个方法,并希望接受一个nil终止列表,并直接将相同的列表传递给我正在包装的方法.

这是我的,但它会导致EXC_BAD_ACCESS崩溃.检查当地的变量,它似乎otherButtonTitles只是一个NSString传入的时间otherButtonTitles:@"Foo", nil]

+ (void)showWithTitle:(NSString *)title
              message:(NSString *)message
             delegate:(id)delegate
    cancelButtonTitle:(NSString *)cancelButtonTitle
    otherButtonTitles:(NSString *)otherButtonTitles, ...
{
    UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:title
                                                     message:message
                                                    delegate:delegate
                                           cancelButtonTitle:cancelButtonTitle
                                           otherButtonTitles:otherButtonTitles] autorelease];
    [alert show];
}
Run Code Online (Sandbox Code Playgroud)

我如何简单地从参数传出到传出参数,从而保留完全相同的nil终止列表?

objective-c variadic

20
推荐指数
1
解决办法
8648
查看次数

什么是Objective-C语法,椭圆样式点符号?"......"

我在Joe Hewitt的Three20源代码中注意到了这一点,之前我从未在Objective-C中看到过这种特殊的语法.甚至不确定如何在适当的Google搜索中引用它.

来自TTTableViewDataSource:

+ (TTSectionedDataSource*)dataSourceWithObjects:(id)object,... {
Run Code Online (Sandbox Code Playgroud)

"......"就是把我扔掉的原因.我假设它是一种枚举形式,可以提供可变数量的参数.如果是,这个运营商的官方名称是什么,我在哪里可以参考它的文档?

非常感谢你.

syntax cocoa objective-c

16
推荐指数
1
解决办法
4080
查看次数

如何覆盖Objective-C中的可变方法

我正在尝试扩展一个具有可变方法的类,例如:

- (void)someMethod:(id)arguments, ... ;
Run Code Online (Sandbox Code Playgroud)

并在子类中通过调用原始方法覆盖它,如:

- (void)someMethod:(id)arguments, ... {
    [super someMethod:arguments, ...];

    // override implementation
    ...
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用.有谁知道如何工作?谢谢.

objective-c variadic variadic-functions

5
推荐指数
1
解决办法
605
查看次数