...在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终止列表?
我在Joe Hewitt的Three20源代码中注意到了这一点,之前我从未在Objective-C中看到过这种特殊的语法.甚至不确定如何在适当的Google搜索中引用它.
来自TTTableViewDataSource:
+ (TTSectionedDataSource*)dataSourceWithObjects:(id)object,... {
Run Code Online (Sandbox Code Playgroud)
"......"就是把我扔掉的原因.我假设它是一种枚举形式,可以提供可变数量的参数.如果是,这个运营商的官方名称是什么,我在哪里可以参考它的文档?
非常感谢你.
我正在尝试扩展一个具有可变方法的类,例如:
- (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)
但这不起作用.有谁知道如何工作?谢谢.