САМЫЕ НОВЫЕ ИСПЫТАНИЯ:
Я поместил NSLog(@"%p", self.myArray);
после назначения массива, и я вижу адрес на самом деле зарегистрировано .....!?!?!
2012-03-06 01:33:52.618 ArrayTest[9883:f803] 0xae0f160
Похоже, что XCode полностью отключен, если он не может увидеть адрес этого ивара в локальных переменных или с помощью метода выделения подсказок ...
Мысли
НОВОЕ ИСПЫТАНИЕ:
Я создал новый проект.
Кажется, что простое назначение объектов ивару не работает вообще. Если я посмотрю адрес myArray после присвоения вновь созданного массива, он будет иметь нулевой адрес.
вывод nslog
2012-03-06 01:30:37.283 ArrayTest[9848:f803] (
)
(lldb)
//
// ViewController.h
// ArrayTest
//
// Created by Ben J Brown on 3/6/12.
// Copyright (c) 2012StudioBflat. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
{
NSMutableArray *myArray;
}
@property (strong) NSMutableArray *myArray;
@end
//
// ViewController.m
// ArrayTest
//
// Created by Ben J Brown on 3/6/12.
// Copyright (c) 2012 StudioBflat. All rights reserved.
//
#import "ViewController.h"
@implementation ViewController
@synthesize myArray;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSMutableArray *array = [NSMutableArray arrayWithCapacity:16];
self.myArray = array;
NSLog (@ "% @", self.myArray);
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
} else {
return YES;
}
}
@end
СТАРЫЕ ДАННЫЕ:
На мой взгляд, у меня есть:
NSLog(@"%@",self.collectionOfImageViews);
self.collectionOfImageViews = [[NSMutableArray alloc] initWithCapacity:NUMBER_OF_COLUMNS*NUMBER_OF_ROWS];
NSLog(@"%@",self.collectionOfImageViews);
Однако позже, когда я обращаюсь к этому массиву, у массива есть адрес, но все объекты, которые я добавил к нему, исчезают, и когда я посылаю сообщение подсчета этому объекту (NSMutableArray), он выдает это в консоли:
-[UIImage count]: unrecognized selector sent to instance 0x6b7ab40
Мои свойства в моем интерфейсе:
@property(strong) NSMutableArray* collectionOfImageViews;
и у меня @synthesize collectionOfImageViews;
сразу после моего @implmentation ... что мне здесь не хватает?
Вот где я делаю коллекцию:
NSLog(@"%@",self.collectionOfImageViews);
self.collectionOfImageViews = [[NSMutableArray alloc] initWithCapacity:NUMBER_OF_COLUMNS*NUMBER_OF_ROWS];
NSLog(@"%@",self.collectionOfImageViews);
глядя на массив, он имеет нулевой адрес сразу после этого действия ....
Что касается той странной ошибки, которая раньше утешала меня тем, что это был UIImage, не отвечающий на count ... Я исправил это, изменив порядок объявлений ivar в интерфейсе:
#import <UIKit/UIKit.h>
#import "TiledImageView.h"
@interface ViewController : UIViewController <TiledImageViewDelegation>
{
NSMutableArray *collectionOfImageViews;
UIImage *sourceImage;
UIImageView *currentTappedView;
}
@property(strong) NSMutableArray* collectionOfImageViews;
@property(strong) UIImage* sourceImage;
@property(strong) UIImageView* currentTappedView;
@end
Что касается того, где я заполняю изменяемый массив позже, вот этот код:
iView = [[TiledImageView alloc] initWithImage:[UIImage imageWithCGImage:tempImage]];
iView.userInteractionEnabled = YES;
iView.delegate = self;
iView.contentMode = UIViewContentModeScaleAspectFit;
[iView setTag:index];
[iView setPosX:column];
[iView setPosY:row];
[collectionOfImageViews addObject:iView];
Я немного сбит с толку, потому что это простая установка и получение ивара ... и выделение и инициализация ... то, что я делал много раз раньше, но кажется, что мои ивы не остаются в живых ... Я новичок в ARC.