【问题标题】:Objective-C (iOS) passing and returning NSString methods? [closed]Objective-C (iOS) 传递和返回 NSString 方法? [关闭]
【发布时间】:2013-07-26 20:54:15
【问题描述】:

我需要将 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){

【问题讨论】:

  • 你应该阅读 Objective-C 教程,它并不像你想象的那么容易。主要区别在于,在 Objective-C 中声明方法时,静态方法用前面的“+”声明,而实例方法用“-”声明。语法也太不同了。你不会“只看例子”就明白了。
  • 首先你应该学习Objective-C。
  • 我想如果有人能回答这个问题,大多数刚接触 Objective-C 的人都会更好地理解它!
  • 是的,将 BUGGY Java 代码转换为 Objective-C。我建议从学习两种语言的基础开始。
  • 实际上,在 Objective-C 中,== 语法会比较指针的内存位置,所以这永远不会起作用。

标签: java objective-c


【解决方案1】:

给你(未经测试):

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

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

【讨论】:

  • 我还要补充一点,返回指向int(或任何其他原始类型)的指针有点不必要。
  • 非常正确。我将编辑代码以删除指针。
  • 这确实有效,虽然我需要改变一些东西:)
  • 它应该按原样工作......
【解决方案2】:
+ (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"];

【讨论】:

    【解决方案3】:

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

    NSString str = @"Some STR";
    

    NSString = [NSString initWithFormat:@"Hello %@", "Hi there"]];
    

    【讨论】:

    • 我想说的语言比你暗示的要大得多
    • 你在开玩笑吗?甚至方法实现也不同。 “static void caller()”在哪方面与“+ (void)caller”大体相同...?
    • 好吧,我不是在问 NSString,我是在问方法……我知道 Objective-C 很公平,但是方法是我无法企及的
    • 方法是Objective-C的症结...教你。
    • 看看 big nerd 牧场,这是相当不错的资源
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多