似乎struct GeneratorOf<T> {…}在Swift 2.0中没有.有谁知道什么,如果有的话,取代这个结构?
谢谢
我有一个具有键控属性的对象:
func value(key: String) -> AnyObject?
func setValue(value: AnyObject?, key: String)
Run Code Online (Sandbox Code Playgroud)
我想检查value从两个不同对象的具有相同键的函数返回的值是否为Equatable. Swift 抱怨是因为Equatable有一个Self引用并且只能在泛型中使用。有没有办法可以检查AnyObject从value函数返回的对象是否符合Equatable?
以前曾经问过这个问题,但是有问题的话,Swift的内容一定有所改变.我正在尝试存储CMSampleBuffer从AVCaptureSession以后处理的对象.经过一些实验,我发现AVCaptureSession必须重复使用它的CMSampleBuffer引用.当我试图保持超过15时会话挂起.所以我想我会复制样本缓冲区.但我似乎无法让它发挥作用.这是我写的:
var allocator: Unmanaged<CFAllocator>! = CFAllocatorGetDefault()
var bufferCopy: UnsafeMutablePointer<CMSampleBuffer?>
let err = CMSampleBufferCreateCopy(allocator.takeRetainedValue(), sampleBuffer, bufferCopy)
if err == noErr {
bufferArray.append(bufferCopy.memory!)
} else {
NSLog("Failed to copy buffer. Error: \(err)")
}
Run Code Online (Sandbox Code Playgroud)
这不会编译,因为它说Variable 'bufferCopy' used before being initialized.我看了很多例子,他们要么编译也不能工作,否则他们就不会编译.
有谁看到我在这里做错了什么?
我有一个方法,我需要存根.该方法的形式如下:
BOOL myMethodWithError:(*__autoreleasing *NSError)error;
Run Code Online (Sandbox Code Playgroud)
所以我嘲笑了这个对象并试图通过"错误"返回一个零.我把它编码如下.
id mockMyObject = [OCMockObject mockForClass:[MyObject class]];
BOOL retVal = YES;
NSError *error = nil;
[[[mockMyObject stub] andReturn:OCMOCK_VALUE(retVal)] myMethodWithError:&error];
Run Code Online (Sandbox Code Playgroud)
运行测试并运行模拟对象时,错误引用ID似乎会更改.所以模拟抛出一个异常:
OCMockObject [MyObject]:调用的预期方法:myMethodWithError:0xbfffca78
我尝试了许多不同的方法,但每次将错误对象传递给导致模拟对象抛出错误的方法时,指针值似乎都会改变.
我只需要根据参数的pass-by-reference值来测试我的业务规则,但我似乎无法让mock或test对象合作.
在此先感谢,任何帮助将不胜感激.
swift2 ×3
generics ×2
ios ×2
avfoundation ×1
core-media ×1
equatable ×1
generator ×1
ios7 ×1
ocmock ×1
sequence ×1
tdd ×1
unit-testing ×1
xctest ×1