-1

エラーが発生しますincompatible integer to pointer conversion returning unsigned int from a function with result type NSUInteger *

それらは同じようなものなので、それが何を意味するのかわかりません..?まったくの初心者で申し訳ありませんが、ここに私の PlayingCards デッキ クラスのコードを示します。

PlayingCards.h

#import "Card.h"

@interface PlayingCards : Card

@property (strong, nonatomic) NSString *suit;
@property (nonatomic) NSUInteger rank;

+(NSArray *) validSuit;

+(NSUInteger *) maxRank;


@end

PlayingCards.m

#import "PlayingCards.h"

@implementation PlayingCards

@synthesize suit = _suit;

//modifying the contents getter so it will return array with the ranks and rank+suit 
-(NSString *) contents {

    NSArray *cardsRank = [PlayingCards rankStrings];

    return [cardsRank[self.rank] stringByAppendingString:self.suit];
}

//creating a method to make sure we get validated suits
+(NSArray *) validSuit {

    return @[@"♠",@"♣",@"♥",@"♦"];
}

//creating calss method to validate the rank
+(NSArray *) rankStrings {

    return @[@"?",@"A",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"J",@"Q",@"K"];
}

//creating a new setter for suit to make sure we get the valitated suits, uding the validateSuit method
-(void) setSuit:(NSString *)suit {

    if ([[PlayingCards validSuit] containsObject:suit]) {
        _suit = suit;
    }
}

//creating new getter for suit to make sure its not empty
-(NSString *) suit {

    return _suit? _suit: @"?";
}

//creating a class method to make sure when user set the rank he will will
+(NSUInteger *) maxRank {

    return [self rankStrings].count - 1;

}

//creating a new setter to the renk to make sure the rank is validates 
-(void) setRank:(NSUInteger)rank {

    if (rank <= [PlayingCards maxRank]) {

        _rank = rank;
    }
}

@end

これを理解するのを手伝ってください、それは行にあります(.mファイル内):

+(NSUInteger *) maxRank {

    return [self rankStrings].count - 1;

}

そして、行に影響を与えます:

-(void) setRank:(NSUInteger)rank {

    if (rank <= [PlayingCards maxRank]) {

        _rank = rank;
    }
}

別のエラーで

order comparison between pointer and integer

ありがとう!

4

1 に答える 1

1

これは通常、使用してはいけない場所で誤ってポインターを使用しようとしたことを意味します。または、必要な場所でポインターを使用しませんでした。クラス メソッドが NSUInteger へのポインタを返しています。*を削除します

于 2013-03-10T01:53:19.020 に答える