我正在尝试使用这里的静态变量tagsToCheck,可以从这个类中的所有静态方法访问。 什么是最好的方法?
保留在这里解决问题,但这是正确的方法吗?
tagsToCheck = [@[@"<html>", @"<br>", @"<br />", @"<br/>", @"<p>", @"<div>", @"<b>",
@"<i>", @"<font>", @"<ul>", @"<li>"] retain];
原始代码是,
static NSArray * tagsToCheck = nil;
@implementation DictionaryUtil
+ (void) initialize {
tagsToCheck = @[@"<html>", @"<br>", @"<br />", @"<br/>", @"<p>", @"<div>", @"<b>",
@"<i>", @"<font>", @"<ul>", @"<li>"];
}
+ (BOOL) isHtml:(NSString *)string
{
if (!string) return NO;
for (NSString *tag in tagsToCheck) { // bad access here for tagsToCheck
if ([string rangeOfString:tag options:NSCaseInsensitiveSearch].location != NSNotFound) {
return YES;
}
}
return NO;
}
答案 0 :(得分:0)
是的,Objective-C数组文字是autorelease
d对象,因此使用retain
是正确的。
答案 1 :(得分:0)
使用retain 不是最好的方法。最好的方法是启用自动引用计数。