Найден старый образец головоломки Apple SDK - PullRequest
1 голос
/ 21 февраля 2011

Я только что наткнулся на старый источник пазлов, который раньше имелось в продаже.Я получил несколько ошибок при компиляции, просто задавался вопросом, может ли кто-нибудь помочь.

Я получаю ошибку: ошибка: несовместимый тип для аргумента 2 'endTrackingPiece: position:' error: несовместимый тип для аргумента 2 из 'continueTrackingPiece:позиция: '

- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
    UITouch*                touch = [touches anyObject];

    //Check if we have a double-tap in the piece view and notify the application controller or begin tracking piece dragging
    if([touch tapCount] >= 2)
    [(AppController*)[[UIApplication sharedApplication] delegate] resetPiece:self];
    else {
        _tracking = YES;
        [(AppController*)[[UIApplication sharedApplication] delegate] beginTrackingPiece:self position:[touch locationInView]];
    }
}

- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
{
    UITouch*                touch = [touches anyObject];

    //Continue tracking piece dragging
    if(_tracking)
    [(AppController*)[[UIApplication sharedApplication] delegate] continueTrackingPiece:self position:[touch locationInView]];
}

- (void) touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event
{
    UITouch*                touch = [touches anyObject];

    //Finish tracking piece dragging
    if(_tracking) {
        [(AppController*)[[UIApplication sharedApplication] delegate] endTrackingPiece:self position:[touch locationInView]];
        _tracking = NO;
    }
}

Заранее спасибо

1 Ответ

1 голос
/ 30 июня 2011

Проблема здесь в том, что locationInView ожидает UIView * в качестве параметра, см. Ссылку здесь:

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITouch_Class/Reference/Reference.html

Таким образом, для каждой из этих трех строк исправление заключается визмените

[touch locationInView]

на

[touch locationInView: self]

Однако до этого вам может потребоваться изменить базовый SDK в файле проекта, если он ссылается на версию Aspen1.2.sdk, версиюЯ нашел это.Я обновил его до iOS4.3 (это все в XCode 4, я должен добавить.)

Если вы также хотите избавиться от предупреждения об устаревании, измените

_puzzles = [[[NSFileManager defaultManager] directoryContentsAtPath:path] mutableCopy];

на

_puzzles = [[[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL] mutableCopy];

в AppController.m _resetPuzzle.

После выполнения вышеизложенного, я получаю чистый проект сборки, который выполняется в симуляторе iOS.Убедитесь, что у вас не отключен звук, иначе вы пропустите "Yay!"когда вы завершите головоломку:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...