Czy istnieje sposób, aby zmienić ciąg znaków w blok kodu? Robię żądanie Ajax do mojej strony internetowej, która ma punkt końcowy, który zwraca krótki kod jako ciąg. Mogę uzyskać ten kod z powrotem jako ciąg, ale nie mogę uruchomić tego kodu, ponieważ nie wie, że jest to kod.Czy mogę zamienić ciąg znaków w blok kodu w szybkim tempie?
Odpowiedz
Nie, nie możesz tego zrobić. Swift jest językiem kompilowanym, a nie interpretowanym jako Ajax.
Kompilator Swift działa na komputerze Mac, a nie na urządzeniu z systemem iOS. (To samo dotyczy Objective-C).
Ponadto, wytyczne sklepu Apple App Store zabraniają dostarczania kodu wykonywalnego do aplikacji, więc nawet jeśli zorientujesz się, jak to zrobić, Twoja aplikacja zostanie odrzucona.
Jak podkreślali inni, jeśli tworzysz aplikację na iOS (szczególnie do dystrybucji w sklepie z aplikacjami), nie możesz tego zrobić. Jeśli jednak piszesz kod Swift dla komputera z systemem OS X i wiesz, że XCode jest zainstalowany na komputerze, możesz uruchomić łańcuch kodu Swift, uruchamiając kompilator Swift z linii poleceń. Coś jak to (z właściwego sprawdzania błędów, oczywiście):
var str = "let str = \"Hello\"\nprintln(\"\\(str) world\")\n"
let task = Process()
task.launchPath = "/usr/bin/swift"
let outpipe = Pipe()
let inpipe = Pipe()
inpipe.fileHandleForWriting.write(str.data(using: String.Encoding.utf8, allowLossyConversion: true)!)
task.standardInput = inpipe
task.standardOutput = outpipe
task.launch()
task.waitUntilExit()
task.standardInput = Pipe()
let data = outpipe.fileHandleForReading.readDataToEndOfFile()
let output = NSString(data: data, encoding: String.Encoding.utf8.rawValue)! as String
Ponownie, to prawdopodobnie nie jest w prawie wszystkich przypadkach rzeczywistych zalecane, ale jest sposobem można wykonać ciąg kodu SWIFT, jeśli ciebie naprawdę trzeba.
- 1. Klasa anonimowa w szybkim tempie
- 2. Silverlight Speex w szybkim tempie
- 3. Czytanie krótkiego pliku tekstowego na ciąg w szybkim tempie
- 4. Jaki jest odpowiednik tego kodu celu-c w szybkim tempie?
- 5. Pomnożenie zmiennych i dubletów w szybkim tempie
- 6. dodawanie wyszukiwaniaBar do nawigacjiBar w szybkim tempie
- 7. Ukrywanie przyjęcia protokołu w szybkim tempie.
- 8. Zmiana wielkości klawiatury w szybkim tempie?
- 9. Symulacja przesuwania UITableViewCell w szybkim tempie
- 10. Dlaczego potrzebuję podkreśleń w szybkim tempie?
- 11. UIView zmienia swoją pozycję w szybkim tempie.
- 12. Skonfiguruj precyzyjne linki w szybkim tempie?
- 13. ogniskowanie pola tekstowego w szybkim tempie
- 14. Jak napisać ten kod w szybkim tempie?
- 15. Nieskończona długość macierzy w szybkim tempie
- 16. Jak mogę zamienić ciąg w Netbeans?
- 17. Pobierz indexPath komórki w centrum kolekcjiWygląd w szybkim tempie?
- 18. Jak zamienić wystąpienia "-" na pusty ciąg znaków?
- 19. Czy mogę rozpakować ciąg znaków?
- 20. Jak zamienić ciąg na inny w haskell
- 21. Jak zainicjować UIBezierPath, aby narysować okrąg w szybkim tempie?
- 22. Jak uwolnić typy CGRect, CGPoint w szybkim tempie?
- 23. Jak zrobić własny cukier syntaktyczny w szybkim tempie?
- 24. Jak zaktualizować dzisiejszy widget w szybkim tempie co x sekundę
- 25. Skąd setHTTPMethod, setURL i setHTTPBody w szybkim tempie?
- 26. Jak poprawnie używać selektorów w szybkim tempie 4
- 27. Jak zamienić ciąg znaków w pliku przy użyciu NANT?
- 28. Co jest alternatywą dla pchu w szybkim tempie?
- 29. Jak utworzyć wideo z użyciem AVAssetWriter w szybkim tempie?
- 30. Podejście do odczytywania dowolnej liczby bitów w szybkim tempie
Nie programistą Swift, ale z różnych względów brzmi to jak zły pomysł: 1 - jeśli kanał zostanie przejęty, osoba atakująca może sprawić, że Twoja aplikacja będzie wykonywała trywialny kod trywialnie. 2- Jeśli jest to aplikacja App Store, Apple odrzuci ją, ponieważ uniemożliwia ona pobranie kodu wykonywalnego. 3 - Musisz mieć swoją aplikację skompilować kod, który może być powolny/niemożliwe, w zależności od urządzenia. Ostatecznie, powinieneś umieścić ten kod w swojej aplikacji i niech twój serwer wyśle ci wiadomość informującą aplikację, jaki kod uruchomić. –