• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Seit Gutenbergs Zeiten haben sich nicht nur Bücher über die ganze Welt verbreitet, sondern Buchstaben und Wörter begleiten uns allumfassend. Selbst moderne Devices mit Sprachsteuerung und Super-KI kommen nicht ohne Buchstaben, Wörter oder Symbole aus. Nicht zuletzt darum ist das Thema das Monats Am Anfang war das Wort ---> Klick

[Swift] Projekt von Objective-C in Swift umwandeln

Markussm

Granny Smith
Registriert
20.12.14
Beiträge
14
Hallo
Könnt ihr mir beim Umwandeln von einem kleinen privaten Projekt helfen?

Hier ist die Header Datei ( Objective -C )
Code:
#import <UIKit/UIKit.h>
@interface Quadrat : ViewController{
    IBOutlet UITextField *l;
    IBOutlet UITextField *A;
}
@property (nonatomic, strong)IBOutlet UITextField *l;
@property (nonatomic, strong)IBOutlet UITextField *A;
- (IBAction)doneEditing:(id)sender;
- (IBAction)Lange:(id)sender;
- (IBAction)Flache:(id)sender;
- (IBAction)showMessage:(id)sender;
@end

Code:
#import "Quadrat.h"
#import "LNNumberpad.h"
@implementation Quadrat
@synthesize l,A;

- (void)viewDidLoad {
    [super viewDidLoad];   
    self.l.inputView   = [LNNumberpad defaultLNNumberpad];
    self.A.inputView   = [LNNumberpad defaultLNNumberpad];
}

- (IBAction)Lange:(id)sender {
    NSString *entered1 = A.text;
    NSNumberFormatter *formatter1 = [[NSNumberFormatter alloc] init];
    [formatter1 setDecimalSeparator:@"."];
    [formatter1 setGroupingSeparator:@","];
    NSNumber *number1 = [formatter1 numberFromString:entered1];
    if (number1 == nil )
    {
        [formatter1 setDecimalSeparator:@","];
        [formatter1 setGroupingSeparator:@"."];
        number1 = [formatter1 numberFromString:entered1];
    }   
    float b= [number1 floatValue];
    float a = sqrtf(b);
    l.text =[NSString stringWithFormat:@"%2.8g", a];
}

@end

Es geht hauptsächlich um die IBAction´s .

Gruß Markus
 
Zuletzt bearbeitet:

KALLT

deaktivierter Benutzer
Registriert
12.11.08
Beiträge
1.523
Für schnelle Konvertierungen finde ich diese Website sehr hilfreich (is aber nicht fehlerfrei): http://iswift.org/try. Da ich gerade Swift lerne, habe ich es mal versucht. Ich habe aber gerade keinen Swift2-Compiler zur Hand, möglicherweise muss die Syntax also etwas angepasst werden (dabei ist Xcode aber sehr behilflich). Die letzte Methode ist seit iOS 6 obsolet und für Swift somit nicht verfügbar.

Code:
// Playground - noun: a place where people can play

import UIKit

class Quadrat: UIViewController {

    @IBOutlet private weak var l: UITextField!
    @IBOutlet private weak var A: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        l.inputView = LNNumberpad.defaultLNNumberpad()
        A.inputView = LNNumberpad.defaultLNNumberpad()
    }

    @IBAction private func Lange(sender: AnyObject) {
        let calculatedValue = floatStringFromString(A.text) { sqrtf($0) }
        l.text = calculatedValue
    }

    @IBAction private func Flache(sender: AnyObject) {
        let calculatedValue = floatStringFromString(A.text) { $0 * $0 }
        l.text = calculatedValue
    }

    @IBAction private func showMessage(sender: AnyObject) {
        let message = UIAlertView(title: NSLocalizedString("Hilfe", comment: ""), message: NSLocalizedString("Quadratinfo", comment: ""), delegate: self, cancelButtonTitle: NSLocalizedString("Zurück", comment: ""))
        message.show()
    }

    @IBAction private func doneEditing(sender: AnyObject) {
        sender.resignFirstResponder()
    }

    private func floatStringFromString(value: String, calculation: (Float) -> Float) -> String? {
        let formatter = NSNumberFormatter()
        let separators = [(".", ","), (",", ".")]
        for separator in separators {
            formatter.decimalSeparator = separator.0
            formatter.groupingSeparator = separator.1
            if let number = formatter.numberFromString(value)?.floatValue {
                let calculatedValue = calculation(number)
                return String(format: "%2.8g", calculatedValue)
            }
        }
        return nil
    }

}