А зачем вам здесь вообще
Bool?
понадобился?
Если флаг успеха, то лучше
var per2 = false
.
Ещё, у вас есть блок try-catch, но в нём ни одного try.
Ещё, вы выводите не-развёрнутый Optional, о чём, к счастью, предупредит компилятор.
Кроме того, у вас может произойти отказ в разных местах, так что стоит подумать над использованием ошибок / "исключений" Swift:
func aaa() throws {
let fetchResult = try PersistenceService.contex.fetch(fetchRequest)
for item in fetchResult {
let per = item.password
guard let pass = per else {
throw AaaErrors.passwordNotCreated
}
print("пароль \(pass!)")
}
}