を渡された場合の試みを設定しようとする別のクラスの内部でメソッドを使用するように作られている場合にNSArrayのみクラスは
#import <Foundation/Foundation.h>
@interface MyClass : NSObject
property(nonatomic, strong) (NSArray *) myArray;
@end
#import "MyClass.h"
@implementation MyClass
@synthesize myArray = _myArray;
@end
...私は空想何もARCを使用してNSArrayのプロパティを持つクラスを持って変更その配列だけが渡された場合は設定されません。つまり、なぜしかし、それは、この両方の方法を試みるコードは、私はいくつかの他のを試してみまし以下...
MyClass *myClass = [[MyClass alloc] init];
[self setArrayByPassingArray:myClass.myArray];
NSLog (@"%@", myClass.myArray)
//result is null
[self setArrayByPassingClass:myClass];
NSLog (@"%@", myClass.myArray)
//result is test, test2...
-(void)setArrayByPassingArray:(NSArray *)arrayToSet {
arrrayToSet = [[NSArray alloc] initWithObjects: @"test", @"test2", nil];
}
-(void)setArrayByPassingClass:(MyClass *)classWithArrayToSet {
classWithArrayToSet.myArray = = [[NSArray alloc] initWithObjects: @"test", @"test2", nil];
}
です....クラスが渡された場合、私はわからないんだけど
を設定しません
あなたが '' myArray' NSMutableArray'を行う必要があり@Nick。私は 'setArrayByPassingArray'のシグネチャを修正するのを忘れました - 私は今編集しました。 – dasblinkenlight
NSMutableArrayも機能しませんでしたが、 - (void)changeArray:(NSMutableArray **)array { * array = [[NSMutableArray alloc] initWithObjects:@ "test"、@ "test2"、nil]; &arrayを使用すると、ポインタを渡しています...すべてのあなたの助けをありがとう } - (void)changeArray2:(NSArray **)array { * array = [[NSMutableArray alloc] initWithObjects:@ " test "、@" test2 "、nil]; } – Nick
@Nickポインタへのポインタを使ったトリックはうまくいきました。これはCとObjective Cで「貧弱な人の参照渡し」がどのように機能するかです。NSMutualArrayでのトリックも有効です:メソッドが 'setArray'割り当てを行う代わりに – dasblinkenlight