2011-04-08 87 views
0

從Java世界到iPhone,我希望看到下面的Java在Objective C中表達。爲了清楚起見,我保留了Obj-C類類型。目標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; 
} 

感謝, 史蒂夫

回答

0
// 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; 
} 

當然,你可能會想包括方法簽名暴露在頭文件的方法:

-(NSMutableArray*)parseDataIntoAnArray:(NSString*)aString; 
+0

男人,你很快!有關內存管理的任何提示嗎?你能來我家嗎,幫我把我的項目搞清楚? :) – steve217 2011-04-08 00:55:22

+0

return myArray; – 2011-04-08 00:57:01

+0

哈哈。我讀過的最佳內存管理規則是:「如果你使用'alloc','copy'或'new',內存管理就在你身上。」幾乎任何其他對象都是'autorelease'd。 – FreeAsInBeer 2011-04-08 00:57:19

0
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; 
} 

注意你的方法(如你所定義的)返回NSString*,並將其分配給NSMutableArray*,它們是不兼容的指針類型。我上面的例子,將返回類型切換爲NSMutableArray*,這是我認爲你的意思。

+0

謝謝,你明白我的意思。修復了原來的帖子。 – steve217 2011-04-08 01:04:49

0

我想你應該先忘記Java或其他編程語言。 然後你可以閱讀關於Objective-C和NSString或其他基本類的文檔。 只是看看實際工作代碼,希望對您有所幫助:

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. 
}