Ich arbeite an einer iOS App mit der neuen iOS7 API: iBeacon.iOS - Ereignis auf Proximity mit iBeacons auslösen
Ich versuche einfach, ein Ereignis auszulösen, wenn ich eine gegebene Nähe entdecke, Unmittelbar hier (von den 4, die anderen sind Nah, Fern und Unbekannt).
Wenn ich meine App auf meinem iPhone 4S aufbaue, funktioniert es. So könnte ich sagen, dass ich fertig bin, aber da ich sehr neu in iOS bin, bin ich mir überhaupt nicht sicher, ob meine Implementierung überhaupt richtig ist oder, noch schlimmer, wenn es nicht der Fall ist, sicher.
ich implementiert im Grunde mein Ereignis in meinem View-Controller (Objective-C-Klasse) und in der Locationmanager Methode aufrufen, wo die Baken reichte bekommen. Ich nahm den Code in der Beispiel-App AirLocate, wenn Sie sehen möchten, wie es geht.
Mein Ereignis ruft einfach eine andere Ansicht auf (um Zugriff auf einige neue Funktionen in dieser bestimmten Ansicht zu erhalten, nur wenn Sie sich in unmittelbarer Nähe zu meinem Beacon befinden). Ich dachte daran, Smart zu sein, denn jedes Mal, wenn meine Beacons in den Bereich gebracht werden, wird auch eine if-Bedingung ausgeführt, und wenn es wahr ist, wird mein Event aufgerufen.
Unten ist meine, wenn die Bedingung, die Locationmanager Methode am Ende der ist:
//Beacons ranging method from Apple until here.
//My code following the sample code.
CLBeacon *beacon = [[CLBeacon alloc] init];
beacon = [beacons lastObject];
if (beacon.proximity == CLProximityImmediate) {
[self immediateDetection];
}
//End of the method here, which would be closed by the last "}"
Und hier ist meine kleine Methode/Veranstaltung:
- (void)immediateDetection
{
NSString *storyboardName = @"Main";
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"HueSwitch"];
//call another view
[self presentViewController:viewController animated:YES completion:nil];
}
Wie gesagt, es funktioniert gut auf meinem iPhone, aber ich habe keine Möglichkeit zu wissen, ob es ein Nein ist, wie es ist.
Also, bin ich nur dumm und es scheint alles in Ordnung zu sein oder hat mein Code einige ernsthafte Sicherheits- oder Stabilitätsprobleme?
Vielen Dank.
der einzige Vorschlag: im Bereich produziert sehr häufig Anrufe delegieren, Sou Sie müssen überprüfen, dass "sofortige" Ansicht bereits auf dem Bildschirm und nicht wieder angezeigt – sage444
'CLBeacon * Beacon = [[CLBeacon Alloc] Init];' - Diese Zeile nicht benötigt – sage444
Ok, ist das Folgende korrekt? anstelle der 2 ersten Codezeilen würde ich nur diese haben: 'CLBeacon * beacon = [Beacons lastObject];' – ySiggen