- 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 )
eins, zewi, drei, vier sind Strings die ihre Daten von einem anderen View Controller bekommen.
Ich habe den Code schon teilweise in Swift umgewandelt, bekomme aber folgende Fehler:
Cannot subscript a value of type 'Dictionary<NSObject, AnyObject>' with an index of type 'String'
bei " if (savedValue?[SwitchState] as? NSNumber)?.boolValue ?? false { "
Hier mein Swift Code
Gruß Markus
Könnt ihr mir beim Umwandeln von einem kleinen privaten Projekt helfen?
Hier ist die Header Datei ( Objective -C )
eins, zewi, drei, vier sind Strings die ihre Daten von einem anderen View Controller bekommen.
@property (strong, nonatomic) IBOutlet UISwitch *bluetoothSwitch;
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *SwitchState;
NSArray *myStrings = [[NSArray alloc] initWithObjects:eins,zwei,drei, vier, nil];
SwitchState = [myStrings componentsJoinedByString
" | | "];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent
"store.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: path]) {
path = [documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat
"store.plist"] ];
}
NSMutableDictionary *savedValue = [[NSMutableDictionary alloc] initWithContentsOfFile: path];
if ([[savedValue objectForKey:SwitchState] boolValue]){
self.bluetoothSwitch.on = [[savedValue objectForKey:SwitchState] boolValue];
}
else{
}
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *SwitchState;
NSArray *myStrings = [[NSArray alloc] initWithObjects:eins,zwei,drei, vier, nil];
SwitchState = [myStrings componentsJoinedByString

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent

NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: path]) {
path = [documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat

}
NSMutableDictionary *savedValue = [[NSMutableDictionary alloc] initWithContentsOfFile: path];
if ([[savedValue objectForKey:SwitchState] boolValue]){
self.bluetoothSwitch.on = [[savedValue objectForKey:SwitchState] boolValue];
}
else{
}
}
Ich habe den Code schon teilweise in Swift umgewandelt, bekomme aber folgende Fehler:
Cannot subscript a value of type 'Dictionary<NSObject, AnyObject>' with an index of type 'String'
bei " if (savedValue?[SwitchState] as? NSNumber)?.boolValue ?? false { "
Hier mein Swift Code
var eins = "Test"
var zwei = "Text"
var drei = "Test"
var vier = "Text"
var SwitchState = ""
let myStrings = [eins, zwei, drei, vier]
SwitchState = myStrings.joined(separator: " | | ")
let paths = NSSearchPathForDirectoriesInDomains(.applicationSupportDirectory, .userDomainMask, true)
let documentsDirectory = paths[0]
var path = URL(fileURLWithPath: documentsDirectory).appendingPathComponent("store.plist").absoluteString
let fileManager = FileManager.default
if !fileManager.fileExists(atPath: path) {
path = URL(fileURLWithPath: documentsDirectory).appendingPathComponent("store.plist").absoluteString
}
var savedValue = NSDictionary(contentsOfFile: path) as Dictionary?
print("Das bekommt viewdid: \(SwitchState)")
if (savedValue?[SwitchState] as? NSNumber)?.boolValue ?? false {
bluetoothSwitch.isOn = (savedValue?[SwitchState] as? NSNumber)?.boolValue ?? false
} else {
print("nein")
}
var zwei = "Text"
var drei = "Test"
var vier = "Text"
var SwitchState = ""
let myStrings = [eins, zwei, drei, vier]
SwitchState = myStrings.joined(separator: " | | ")
let paths = NSSearchPathForDirectoriesInDomains(.applicationSupportDirectory, .userDomainMask, true)
let documentsDirectory = paths[0]
var path = URL(fileURLWithPath: documentsDirectory).appendingPathComponent("store.plist").absoluteString
let fileManager = FileManager.default
if !fileManager.fileExists(atPath: path) {
path = URL(fileURLWithPath: documentsDirectory).appendingPathComponent("store.plist").absoluteString
}
var savedValue = NSDictionary(contentsOfFile: path) as Dictionary?
print("Das bekommt viewdid: \(SwitchState)")
if (savedValue?[SwitchState] as? NSNumber)?.boolValue ?? false {
bluetoothSwitch.isOn = (savedValue?[SwitchState] as? NSNumber)?.boolValue ?? false
} else {
print("nein")
}