2013-03-09 58 views
-1

即時得到錯誤incompatible integer to pointer conversion returning unsigned int from a function with result type NSUInteger *獲取不兼容的整數指針錯誤

我不知道那是什麼意思,因爲它們是一種相同的,沒有..?遺憾的IM完全是一個新手,這是我爲我的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

的感謝!

+5

擺脫''任何地方,你正在使用'NSUInteger'的。 'NSUInteger'是一個基本類型,不是一個類。 – rmaddy 2013-03-09 22:30:38

+0

謝謝老兄! @rmaddy – JohnBigs 2013-03-09 22:33:45

+0

或者至少一個的malloc指針爲整數。 – CodaFi 2013-03-09 22:40:27

回答

1

這通常意味着你已經嘗試過,你應該不小心使用指針。或者你沒有使用指針。 你的類方法返回一個指針到您NSUInteger。刪除*