• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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
    }

}