2009-10-30 3 views
0

Мне просто интересно, есть ли способ поменять два укуса в этом примере?isEqualToString могут быть заменены?

// This works 
for(eachArtist in artistCollection) { 
if([objFirName isEqualToString: [eachArtist firName]]) NSLog(@"DELETE ...."); 
} 

То, что я пытался сделать было (см ниже) это может быть сделано или выше единственным способом?

[eachArtist firName isEqualToString: objFirName] 

eachArtist.firName является NSString в массиве объектов, objFirName является ванильным NSString.

Гэри

+0

Эта вторая строка неверна. Objective-C, что вы имеете в виду [[eachArtist firName] isEqualToString: objFirName] – Mark

+0

Марк, это то, чем я был, я был маппетом, я забыл скопировать первый аргумент. Извините, все еще пытаюсь справиться с Objective-C. – fuzzygoat

ответ

0

Если вы синтезировали firName собственности в Artist реализации, эти два подхода эквивалентны.

То есть:

[eachArtist firName] 

такая же, как

eachArtist.firName 

Если @property является @synthesize -d в Artist.m и readwrite или readonly в Artist.h.

Поскольку вы выполняете предикат isEqualToString, а не предикат, не превышающий или превышающий предикат, не имеет значения порядок, в котором элементы находятся в предикате.

В математических терминах A = B тогда и только тогда, когда B = A, для сравнения строк.

+0

Chuck Thats именно то, что я хотел. @Alex Рейнольдс, большое спасибо, единственная причина, по которой нужно поменять местами, - сделать код лучше. – fuzzygoat

Смежные вопросы