// targ_url is passed in as an address to a NSString pointer.
- (long) analyse_scan_result : (NSString *)scan_result target_url : (NSString **)targ_url
{
NSLog (@" RES analyse string : %@", scan_result);
NSRange range = [scan_result rangeOfString : @"http://"
options : NSCaseInsensitiveSearch
];
// **** The following retain is the first retain
// **** statement in this method.
if (range.location == NSNotFound)
{
*targ_url = @"";
[*targ_url retain];
NSLog(@" FND string not found");
return 0;
}
NSString *sub_string = [scan_result substringFromIndex : range.location];
range = [sub_string rangeOfString : @" "];
if (range.location != NSNotFound) {
sub_string = [sub_string substringToIndex : range.location];
}
NSLog(@"FND sub_string = %@", sub_string);
*targ_url = sub_string;
// ** The following retain is the second retain
// ** statement in this method.
[*targ_url retain];
return [*targ_url length];
}
这个问题与我之前提出的问题相似并且相关(这似乎得到了令人满意的解决)。同样,上述方法仅在添加了保留语句后才有效。上面添加了 2 个,但在任何给定时间只执行一个。
该例程所做的是从条形码扫描仪输出中查找“http://”字符串并将其返回。我的问题是保留语句是必要的还是适当的?
希望有懂行的能帮忙...