我正在玩Swift并且遇到以下问题:鉴于我有预定义的类Animal:
//Predefined classes
class Animal {
var height: Float = 0.0
}
Run Code Online (Sandbox Code Playgroud)
我现在Zoo用接受动物的构造函数编写类.但是Zoo希望每只动物都有一个名字,因此定义了Namable协议.
protocol Namable {
var name: String {get}
}
class Zoo {
var animals: Animal[] = [];
}
Run Code Online (Sandbox Code Playgroud)
您如何编写一个addAnimal方法,要求将对象作为参数传递为类型 Animal并符合协议 Namable?你如何为animals阵列声明?
func addAnimal:(animal: ????) { ... }
Run Code Online (Sandbox Code Playgroud)
在Objective-C中,我会写这样的东西
- (void)addAnimal:(Animal<Namable>*)animal {...}
Run Code Online (Sandbox Code Playgroud) 我有一个NSCharacterSet,它包含我要从NSString中删除的所有字符.
我怎样才能做到这一点?
我只是想问是否可以通过类别添加实例变量.我的特殊问题是,我需要将一个NSIndexPath属性添加到ASIHTTPRequest对象,但我不想将ASIHTTPRequest子类化为原则问题.
我有什么选择吗?
谢谢你的回答,克里斯蒂安
我正在寻找一个Objective-C类,它允许我在iPhone上获得实时输入声音的频率.没找到任何有用的东西.
在你问之前:频率不会改变0.1秒.
感谢答案,克里斯蒂安
我在这里有以下代码,它不会在ARC上运行,因为它在结构中组合了Objective-C对象:
struct SingleToManyRelation {
id singleObject;
NSSet* manyObjects;
}
Run Code Online (Sandbox Code Playgroud)
我知道这让人想起Core Data,但这不是重点;)我只是在寻找一种解决方案来实现类似的东西,而不必创建一个"容器"类.
提前感谢您的建议,Christian