我知道这很可能是个蹩脚的问题,但我已经连续通宵睡了三次,而且我很模糊。我是新来的目标C和可可触摸。
我创建了一个提供委托方法的类。我将使用简化的示例代码,因为细节并不重要。头文件如下所示:
#import <Foundation/Foundation.h>
@protocol UsernameCheckerDelegate <NSObject>
@required
- (void)didTheRequestedThing:(BOOL)wasSuccessful;
@end
@interface TheDelegateClass : NSObject {
id <TheDelegateClassDelegate> tdcDelegate;
}
@property (assign) id <TheDelegateClassDelegate> tdcDelegate;
- (void)methodThatDoesSomething:(int)theValue;
@end
源文件如下:
#import "TheDelegateClass.h"
@implementation TheDelegateClass
@synthesize tdcDelegate;
- (void)methodThatDoesSomething:(int)theValue {
if (theValue > 10) {
[[self tdcDelegate] didTheRequestedThing:NO];
// POINT A
}
// POINT B
int newValue = theValue * 10;
NSString *subject = [NSString stringWithFormat:@"Hey Bob, %i", newValue];
// Some more stuff here, send an email or something, whatever
[[self tdcDelegate] didTheRequestedThing:YES];
// POINT C
}
@end
我的问题是:如果
价值
实际上大于10,并且A点以上的线运行,程序流控制是否通过此方法(并返回到
有问题吗?
在调用此的对象中委托方法)或流是否继续通过点B到点C?
我之所以希望前者,是因为我可以简化代码的检查过程,而目前这是一个令人不快的、嵌套很深的ifs和else的混乱局面。