简体   繁体   English

Objective C类中的调用方法

[英]Calling methods within an Objective C class

Coming from the Java world to the iPhone, I would like to see the following Java expressed in Objective C. For clarity's sake, I've kept the Obj-C class types. 从Java世界到iPhone,我希望看到在Objective C中表达以下Java。为清楚起见,我保留了Obj-C类类型。

NSString myData = "some stuff";
NSMutableArray myArray = parseDataIntoAnArray(myData);
...
private NSMutableArray parseDataIntoAnArray(NSString aString){
  NSMutableArray myArray = new NSMutableArray();
  // objects added here to myArray by manipulating aString
  return myArray;
}

Thanks, Steve 谢谢,史蒂夫

// All string literals require the "@" symbol at the beginning.
NSString *myData = @"some stuff";
NSMutableArray *myArray = [self parseDataIntoAnArray:myData];

-(NSMutableArray*)parseDataIntoAnArray:(NSString*)aString {
  NSMutableArray *myArray = [NSMutableArray array];

  return myArray;
}

Of course you would probably want to expose the method in the header file by including the method signature: 当然,您可能希望通过包含方法签名在头文件中公开该方法:

-(NSMutableArray*)parseDataIntoAnArray:(NSString*)aString;
NSString * myData = @"some stuff";
// assumption is that parseDataInto... is a static method on your Foo class
NSMutableArray * myArray = [Foo parseDataIntoAnArray: myData];

+ (NSMutableArray *) parseDataIntoAnArray: (NSString*) aString
{
   NSMutableArray *myArray = [NSMutableArray array]
   // stuff here
   return myArray;
}

Note that your method (as you defined it) returns NSString* , and is assigning it to a NSMutableArray* , which are incompatible pointer types. 请注意,您的方法(定义正确)返回NSString* ,并将其分配给NSMutableArray* ,它们是不兼容的指针类型。 My example above, switches the return type to NSMutableArray* which is what I think you mean to do. 我在上面的示例中,将返回类型切换为NSMutableArray* ,这是我认为您要执行的操作。

I think you should first forget Java or any other programming languages. 我认为您首先应该忘记Java或任何其他编程语言。 Then you could read the documentation about Objective-C and the basic classes like NSString or others. 然后,您可以阅读有关Objective-C和基本类(如NSString或其他类)的文档。 Just take a look at the actually working code, hope to help: 只需看一下实际工作的代码,希望对您有所帮助:

NSString *myData = @"some stuff";//string initializer
NSMutableArray *myArray = [self parseDataIntoAnArray:myData];//Object-C's message(just like methods or something)

//instance method, take a parameter named aString
- (NSMutableArray *)parseDataIntoAnArray:(NSString *)aString{
  NSMutableArray *myArray = [NSMutableArray array];//array initializer

  [myArray addObject:aString];//another Message, add object to the array

  return myArray;//return the passed array, that's done.
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM