0

だから私はいくつかの値を保持するこのクラスを持っています。ビューコントローラで、これらのオブジェクトの束を作成し、それらをクリックすると、データを設定できます。次に、それらを移動してオブジェクトが交差するときに、それらの間でデータを交換する必要があるメソッドがあります。今、私がそれをステップスルーすると、すべてがうまく機能しているようです。Selfは他のオブジェクトからのデータも保持しますが、オブジェクトをもう一度クリックすると、古いデータの保持に戻ります。なぜこれが起こるのか誰かが何か考えを持っていますか?

[OK]をクリックしてそのオブジェクトにデータを設定する必要があるポップアップで各オブジェクトにデータを設定したので、データが変更されることがはっきりとわかる場合、このデータがどこから返されるのかわかりませんステップスルーするとき

データを交換する方法は次のとおりです。

これは私のtouchesEndedメソッドで発生します。

Seat.h

#import <UIKit/UIKit.h>
#import "CustomUIScrollView.h"
#import "PopOverViewController.h"

@interface Seat : UIView

@property (nonatomic) CGRect rectangle;
@property (strong, nonatomic) CustomUIScrollView *sv;

@property (assign) int seatId;
@property (assign) int seatsSelfObjectIndex;

@property (strong,nonatomic) NSString *firstName;

@property (assign,nonatomic) CGColorRef selectedfillColor;

@property (nonatomic) int swapDataWithSeatInt;
@property (strong, nonatomic) Seat *swapDataWtihSeat;

@property (assign) CGPoint tempLoc;

@property (assign) BOOL didSeatIntersect;


@end




- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint location = [touch locationInView:[self superview]];
    self.center = location;
    for (int i = 0; i < seats.count; i++)
         {
             if (CGRectIntersectsRect(self.frame, [[seats objectAtIndex:i]frame]))
             {
                 if (i != seatsSelfObjectIndex)
                 {
                     swapDataWithSeatInt = i;
                     swapDataWtihSeat = [seats objectAtIndex:swapDataWithSeatInt];
                     didSeatIntersect = YES;
                 }
             }

         }
}

- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{

    selectedfillColor = [UIColor clearColor].CGColor;
    [self setNeedsDisplay];

    if (!didSeatIntersect)
    {
        [self setCenter:tempLoc];

    }
    else 
    {

        NSString *tempFirstName = [[seats objectAtIndex:swapDataWithSeatInt]firstName];

        [[seats objectAtIndex:swapDataWithSeatInt ] setFirstName:self.firstName];

       [self setFirstName:tempFirstName];

    } 
}
4

0 に答える 0