Xcode 4 statik analizörü, bu durumun böyle görünmediğinde aşırı bir geri dönüş değerine sahip olarak bu yöntemi işaretler.Xcode static analyzer and copyWithZone
- (id)copyWithZone:(NSZone *)zone
{
return [[[self class] allocWithZone:zone] initWithURL:self.url postString:self.postString];
}
bunu şu ifadeye dönüş anahtar kelimeden bir ok işaret yoktur ve başka o ifadeden analizörü uyarısına. İşte statik analiz:
- Yöntem alınma sayısı korumak +1 ile bir Objective-C nesnesi döndüren gönderilen Nesne -autorelease mesajı
- Nesne (tek muhafaza sayımı transfer bir sahibi referans olarak Arayana döndü
- sayımları 1 (sahip olduğu) Arayana sayımı beklenen korumak döndü tutan birçok arayan)
- Nesne +0 ile alınma sayısı korumak) bir 0 (non-armatörlük ile
- Nesne arayan döndü
Statik analiz cihazı yanlış mı, yoksa bu kodda bir sorun mu var? Talep üzerine
, -initWithURL:postString:
yöntemi:
- (id)initWithURL:(NSURL *)u postString:(NSString *)p
{
if ((self = [super init]))
{
self.url = u;
self.postString = p;
}
return self;
}
Hatta temizlik ve projeyi yeniden sonra bu uyarıyı almaya devam ediyor.
UPDATE: Xcode statik çözümleyicisi artık Xcode 4.2'ye yükselttikten sonra bunu bir sorun olarak işaretlemiyor.
Hmm ... ayrıca initWithURL: postString: yönteminizi de gönderebilir misiniz? – spacehunt
@spacehunt: Soruyu güncelledim. – titaniumdecoy
@Jason: Sadece yukarıdakileri kullanarak yeni bir sınıf oluşturdum ve bunu Xcode 4.0.2 ile kopyalayamıyorum. "2. Nesne gönderildi autorelease" analizini tıkladığınızda, hangi ok vurgulanır? – spacehunt