【发布时间】:2016-01-12 20:27:22
【问题描述】:
我在 NSInvocation 中使用 ARC 进行测试,但它触发了内存泄漏。在 MRC 中,它运行良好。我不知道为什么。
- (NSArray *)a:(NSString *)a b:(NSString *)b c:(NSString *)c
{
return @[a, b, c];
}
- (void)testNSInvocation
{
NSMethodSignature *sig = [self methodSignatureForSelector:@selector(a:b:c:)];
NSInvocation *inv = [NSInvocation invocationWithMethodSignature:sig];
[inv setTarget:self];
[inv setSelector:@selector(a:b:c:)];
NSString *a = @"a", *b = @"b", *c = @"c";
[inv setArgument:&a atIndex:2];
[inv setArgument:&b atIndex:3];
[inv setArgument:&c atIndex:4];
[inv retainArguments];
[inv invoke];
NSArray *ret;
[inv getReturnValue:&ret];//this is problem,but why?
NSLog(@"ret:%@", ret);
}
【问题讨论】:
标签: ios memory-leaks