-6

我需要将 NSString 传递并捕获到 int 返回方法,如何通过传递 NSString 来调用它,以及在方法中如何捕获该 NSString?

- (IBAction)lower:(id)sender{
    NSString *finalcard = [self getCard];
    int *rank = 0; // [self getRank] < also how to pass the finalcard NSString to it?
}

- (NSString *)getCard{
    NSString *result = nil;

    return result;
}
- (int *)getRank{
    //if(passedString == @"randomcard"){return 1}else{  < how to catch the passedString?
    return 0;
    //}
}

在 java 中,传递看起来像class.getRank("string");并且捕获它会在

static int getRank(String passedString){
4

3 回答 3

0
+ (int)getRank:(NSString *)passedString
{
    return [passedString isEqualToString:@"randomcard"] ? 1 : 0;
}

我使用“+”符号是因为您在 Java 代码中将其定义为“静态”,而 Objective-C 中的等价物是类方法。

所以,如果你用 Java 调用:

int rank = Class.getRank("some string");

在Objective-C中你会这样做:

int rank = [Class getRank:@"some string"];

如果您需要从实例(实际对象)调用它,您可以这样做:

int rank = [self.class getRank:@"some string"];
于 2013-07-26T22:55:25.223 回答
0

给你(未经测试):

- (int)getRank:(NSString *passedString) {
    if([passedString isEqualToString:@"randomcard"]){
        return YES;
    } else {
        return NO;
    }
}

我建议你先学习 Objective-C。这是一个非常基本的问题。

于 2013-07-26T21:32:15.997 回答
-1

首先,NSString(String 的 iOS 实现)是这样的:

NSString str = @"Some STR";

或者

NSString = [NSString initWithFormat:@"Hello %@", "Hi there"]];
于 2013-07-26T20:59:09.583 回答