سؤال

أحتاج إلى محاكاة كيفية البحث عن طلبي عندما يقود المستخدم للحصول على عرض تجريبي. لدي MKMAPView، كيف يمكنني محاكاة مظهر المستخدم الذي ستعمل حولها التي ستستخدم وظيفة الخريطة. من الواضح أنها لن تكون متاحة في العرض التوضيحي.

شكرا!

هل كانت مفيدة؟

المحلول 2

حسنا، لقد حصلت على شيء ما، لقد فعلت ذلك بشكل أساسي

- (void)moveIcon:(MKAnnotationView*)locationView toLocation:(CLLocation*)newLoc
{
    LocationAnnotation* annotation = [[[LocationAnnotation alloc] initWithCoordinate:newLoc.coordinate] autorelease];
    [locationView setAnnotation:annotation];
    [map setCenterCoordinate:newLoc.coordinate animated:YES];
}

ثم أتصل بهذا الرجل في حلقة بين جميع رؤوسي مع تأخير طفيف. يعمل كيل تماما.

نصائح أخرى

لا طريقة لمحاكاة في محاكاة iPhone. ستحتاج إلى تحميلها على جهازك وتتنقل.

أنا لست خبيرا iPhone Dev، ولكن كيف تحصل خريطة العرض على الإحداثيات؟ إذا كان من خلال وظيفة يستدعي API Corelocation، هل يمكن أن تكتب وظيفة فقط التي تولد عشوائيا خط الطول وقيم خطوط العرض في فاصل زمني معين ولدي عرض الخريطة سحب الإحداثيات من هناك بدلا من ذلك؟ مجرد فكرة.

يمكنك أيضا التحقق من isimulate. الذي يدعي أنه قادر على محاكاة العديد من الميزات المتاحة فقط على iPhone في محاكي iPhone يشمل Corelocation. لم أحاول هذا نفسي، لذلك قد يختلف الأميال.

من أجل محاكاة القيادة، ستحتاج إلى إنشاء وظيفتين أساسيين:

  1. قراءة CloCations من الأرشيف (الذي ستحصل عليه أثناء اختبار محرك الأقراص باستخدام جهاز). من الناحية المثالية، ستقوم بذلك بناء على الطوابع الزمنية الموجودة في المواقع، أي إعادة إنتاج تحديثات الموقع نفسها بالضبط والتي تم استلامها أثناء اختبار محرك الأقراص.

  2. تحديث موضع MkannotationView الخاص بك على الخريطة بناء على المواقع التي تقرأ من السجل.

للجزء 1، إلقاء نظرة على cllocationdispatch., ، فئة مفيدة توفر أرشفة / شمجة من cllocations وإرسالها إلى واحد أو أكثر من المستمعين (باستخدام بروتوكول cllocationmanagerdelegate).

للجزء 2، إلقاء نظرة على تتحرك-mkannotationView..

لقد وجدت وسيلة أفضل سيكون في الفئة الفرعية MKUserLocation:

class SimulatedUserLocation: MKUserLocation {
    private var simulatedCoordinate = CLLocationCoordinate2D(latitude: 39, longitude: -76)
    override dynamic var coordinate: CLLocationCoordinate2D {
        get {
            return simulatedCoordinate
        }
        set {
            simulatedCoordinate = newValue
        }
    }
}

ثم أضفها كشروح mapView.addAnnotation(SimulatedUserLocation()). وبعد (قد ترغب أيضا في إخفاء الموقع الحقيقي أولا mapView.showsUserLocation = false)

من شأن iOS تقديم التوضيح بالضبط مثل موقع المستخدم الحقيقي.

dynamic يستخدم على العقار بحيث يتغير تنسيق الإحداثيات KVO وينقله على الخريطة.

الجواب لا. ثم، ماذا عن إضافة طبقة تجريدية بين التعليمات البرمجية الخاصة بك و mkmapkit؟ يمكنك القيام باختبارات XUNIT هدفك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top