iPad 6.1 シミュレーターを使用していますが、別のオブジェクトを IBOutletCollection に追加しようとすると、エラーが発生する理由がわかりません。
__NSArrayI addObject: 認識されないセレクターがインスタンスに送信されました。
テスト プロジェクトをセットアップし、次のように証明しました。
ViewController.m
@interface ViewController ()
@property (strong, nonatomic) IBOutletCollection(UILabel) NSMutableArray *collection;
@property (strong, nonatomic) NSMutableArray *collection2;
@end
@implementation ViewController
-- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UILabel *label = [[UILabel alloc]init];
// Test 1 - Pass
NSMutableArray *array = [[NSMutableArray alloc]init];
[array addObject:label];
// Test 2 - Pass
_collection2 = [[NSMutableArray alloc]init];
[self.collection2 addObject:label];
// Test 3 - Fails
[self.collection addObject:label];
}
@end
テスト 3 の直前に a を実行するlldb:p self.collection
と
、(NSMutableArray *) $0 = 0x071817b0 @"3 objects"
それが参照している 3 つのオブジェクトは、私が IB 経由で接続したものです。どういうわけか、XCode 4.3.2 は嘘をついていて、コレクションは NSArray でなければならないと思います。
私も[_collection addObject:label]
同じ結果で試しました。
この件に関するご意見は大歓迎です。