I recover this code from disk and try build it on xcode 5.0.2 for ios.
In xcode 4 this code work but actually not:
else {
for (int i=0;i<pieceNumber;i++){
for (int j=0;j<pieceNumber;j++){
CGRect rect = CGRectMake( 0, 0, SHAPE_QUALITY*piceSize, SHAPE_QUALITY*piceSize);
PieceView *piece = [[PieceView alloc] initWithFrame:rect];
piece.delegate = self;
piece.image = [array objectAtIndex:j+pieceNumber*i];
piece.number = j+pieceNumber*i;
piece.size = piceSize;
piece.position = -1;
NSNumber *n = [NSNumber numberWithInt:NumberSquare];
piece.neighbors = [[NSArray alloc] initWithObjects:n, n, n, n, nil];
//piece.frame = rect;
NSMutableArray *a = [[NSMutableArray alloc] initWithCapacity:4];
for (int k=0; k<4; k++) {
int e = arc4random_uniform(3)+1;
if (arc4random_uniform(2)>0) {
e *= -1;
}
[a addObject:[NSNumber numberWithInt:e]];
}
if (i>0) {
int l = [arrayPieces count]-pieceNumber;
int e = [[[[arrayPieces objectAtIndex:l] edges] objectAtIndex:1] intValue];
[a replaceObjectAtIndex:3 withObject:[NSNumber numberWithInt:-e]];
//DLog(@"e = %d", e);
}
if (j>0) {
int e = [[[[arrayPieces lastObject] edges] objectAtIndex:2] intValue];
[a replaceObjectAtIndex:0 withObject:[NSNumber numberWithInt:-e]];
//DLog(@"e = %d", e);
}
if (i==0) {
[a replaceObjectAtIndex:3 withObject:[NSNumber numberWithInt:0]];
}
if (i==pieceNumber-1) {
[a replaceObjectAtIndex:1 withObject:[NSNumber numberWithInt:0]];
}
if (j==0) {
[a replaceObjectAtIndex:0 withObject:[NSNumber numberWithInt:0]];
}
if (j==pieceNumber-1) {
[a replaceObjectAtIndex:2 withObject:[NSNumber numberWithInt:0]];
}
piece.edges = [NSArray arrayWithArray:a];
[arrayPieces addObject:piece];
}
}
} //end if loadingGame
Errors:
Multiple methods named 'edges' found with mismatched result, parameter type or attributes
and
Bad receiver type 'UIRectEdge' (aka 'enum UIRectEdge')
Someone can help me?
Regards,
Code with UIRectEdge
#import <UIKit/UIGeometry.h>
#import <UIKit/UIPanGestureRecognizer.h>
/*! This subclass of UIPanGestureRecognizer only recognizes if the user slides their finger
in from the bezel on the specified edge. */
NS_CLASS_AVAILABLE_IOS(7_0) @interface UIScreenEdgePanGestureRecognizer : UIPanGestureRecognizer
@property (readwrite, nonatomic, assign) UIRectEdge edges; //< The edges on which this gesture recognizes, relative to the current interface orientation
@end
and with edges problem
//@property (nonatomic, assign) id<PieceViewProtocol> delegate;
@property (nonatomic, assign) PuzzleController *delegate;
@property(nonatomic, retain) NSArray *edges;
@property(nonatomic, retain) NSArray *neighbors;
@property(nonatomic, retain) UIImage *image;
@property(nonatomic, retain) UIView *centerView;
@property(nonatomic, retain) UIPanGestureRecognizer *pan;
@property(nonatomic, retain) GroupView *group;
@property(nonatomic) BOOL isPositioned;
@property(nonatomic) BOOL isLifted;
@property(nonatomic) BOOL isFree;
@property(nonatomic) BOOL isRotating;
@property(nonatomic) BOOL isBoss;
@property(nonatomic) BOOL hasNeighbors;
@property(nonatomic) CGPoint oldPosition;
@property(nonatomic) int number;
@property(nonatomic) int position;
@property(nonatomic) int positionInDrawer;
@property(nonatomic) int moves;
@property(nonatomic) int rotations;
@property(nonatomic) float angle;
@property(nonatomic) float size;
@property(nonatomic) float padding;
@property(nonatomic) float tempAngle;
- (void)move:(UIPanGestureRecognizer*)gesture;
- (void)rotate:(UIRotationGestureRecognizer*)gesture;
- (void)rotateTap:(UITapGestureRecognizer*)gesture;
- (id)initWithFrame:(CGRect)frame;
- (int)edgeNumber:(int)i;
- (void)setNeighborNumber:(int)i forEdge:(int)edge;
- (NSArray*)allTheNeighborsBut:(NSMutableArray*)excluded;
- (CGPoint)realCenter;
- (void)pulse;
- (BOOL)isCompleted;
@end
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…