我对"Spaghetti Code"的理解是一个代码库,它从一个代码块跳转到另一个代码块,没有逻辑和清晰的目的.最常见的罪犯似乎是GOTO声明.
我目前正在阅读/参考清洁代码:敏捷软件工艺手册的功能章节.虽然自己承认,作者对功能的大小非常严格.我理解保持功能小的想法,然而,他建议它们应该在5行左右.虽然Classes肯定变得更易读,但我害怕通过编写较小的函数来创建意大利面条代码.较小的函数似乎也无意中创建了更高的抽象.
代码在什么时候成为意大利面条代码?如何抽象是过于抽象?任何答案都会非常有帮助.
顺便说一句,我是Stack Overflow的长期追随者,虽然这是我第一次发帖提问,所以对我的帖子的任何建议也是受欢迎的.
非常感谢!
如何使用UIActivityViewController发送包含快速消息和链接的电子邮件?我尝试过使用NSURL:
NSURL *url = [NSURL URLWithString:@"http://google.com/"];
Run Code Online (Sandbox Code Playgroud)
还有一个NSString:
// String with Hyperlink syntax
NSString *stringURLHyperlink = @"<a href=\"http://google.com/">Google</a>";
// Plain text link out of desperation.
NSString *stringURLPlain = @"http://google.com/";
Run Code Online (Sandbox Code Playgroud)
我没有使用自定义UIActivity.NSString/NSURL作为activityItems发送:
NSArray *activityItems = @[link];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
Run Code Online (Sandbox Code Playgroud)
感谢大家.
编辑1:
我道歉,我应该让我的问题更清楚.如何使用UIActivityViewController在电子邮件中发送消息和可点击链接?
我试图创建一个抽象类并在子类中继承它的一些属性.如果我将属性保留在抽象类的头文件中,则可以访问所有属性.问题是子类的实例也可以访问这些属性,这在我的情况下并不总是可取的.
例如,我在我的抽象类中有一个委托,它将按钮按下发送到它的子类.我意识到这可能不是构建继承的最佳方式,因此欢迎其他建议.但是,我仍然想知道我的子类如何从其超类继承一些属性而不在其实例中使所有这些属性可用.提前致谢!
以下是一些示例代码:
@interface AbstractClass : UIView
@property (nonatomic, strong) id<ButtonDelegate>buttonDelegate;
@end
…
@protocol ButtonDelegate
@required
- (void) buttonWasPressed;
@end
…
@interface SubClass() <ButtonDelegate>
- (id)init {
self = [super init];
if (self) {
self.buttonDelegate = self;
}
return self;
}
-(void) buttonWasPressed {
[self doSomething];
}
…
@implementation ViewController
- (void)viewDidLoad {
SubClass *subClass = [[SubClass alloc] init];
subClass.buttonDelegate = self; // THIS IS NOT DESIRABLE
}
Run Code Online (Sandbox Code Playgroud) ios ×2
objective-c ×2
abstraction ×1
coding-style ×1
email ×1
function ×1
hyperlink ×1
inheritance ×1
refactoring ×1
scope ×1