0

为什么我需要这个?

例如,我有一个返回对象(VKRequest)的方法,如下所示:

VKRequest *request = [[VKUser currentUser] info];

然后程序员可以按如下方式发起请求:

[request start];

如果请求应该在方法调用后立即开始,程序员应该编写以下代码:

[VKUser currentUser].startAllRequestsImmediately = YES;
[[VKUser currentUser] info];

我真正想要的是从 VKUser 类中消除 startAllRequestsImmediately 属性,如果不使用返回值,则立即执行请求。

有可能吗?

谢谢。

4

2 回答 2

2

至少你不能做你想做的事。在运行时不知道“我是否已分配给变量?” 您的两个选项是要么有一个参数来指定是否立即开始请求,要么有不同的方法来“立即获取这个东西”和“我说之后得到这个东西start”。

于 2013-07-05T17:16:57.157 回答
0

方法/对象不应该关心退出后返回值会发生什么。您似乎想强制耦合不良。

另一个想法是,这听起来有点像 Apple 的 NSURLConnection。看:

- (id)initWithRequest:(NSURLRequest *)request delegate:(id < NSURLConnectionDelegate >)delegate startImmediately:(BOOL)startImmediately
于 2013-07-05T17:39:23.523 回答