Tło: w Objective-C, chciałbym utworzyć mój twierdzenie z informacji debugowania włączone:Swift assert mimo to wydrukować zmienne łańcucha
NSAssert(poetCount > 5, "Expected poetCount > 5; Actual: %d", poetCount);
Jednak globalny assert
funkcja w Swift nie wydaje aby na to zezwolić, ponieważ parametrem wiadomości jest StaticString. Więc nie mogę tego zrobić:
assert(NSFileManager.defaultManager().fileExistsAtPath(fullpath),
"Expected: File to Exist @ \(fullpath)")
Pytanie: Czy istnieje alternatywa assert
funkcja, która nie wymaga statycznego ciąg, czy mam kontynuować korzystanie NSAssert
jeśli chcę umieścić w informacji dodatkowej do debugowania łatwiejsze ?
Co się dzieje, jeśli zastąpić „Oczekiwane ......” część z obiektów ciąg? Niestety, w systemie Windows nie można przetestować. –
@LordZsolt Jeśli napiszę 'let assertString =" Expect: sectionIndex> 0; Actual \ (sectionIndex) "; assert (sectionIndex> 0, assertString) 'Otrzymuję ten błąd:" Nie można znaleźć przeciążenia dla 'assert', które akceptuje dostarczone argumenty " – Tobias
Nie wiem, kiedy jabłko to zmieniło, ale asercja może teraz obsługiwać interpolację napisów. – Tobias