0

以下は、いくつかのパラメーターをメソッドに渡し、そのパラメーター値をローカルの ivar とプロパティに割り当てるケースです。

- (void) assignOwnerView:(UIView*)oView andPosition:(menuPosition)position withTopView:(UIView*)topView {


    self.topView = topView;
    self.ownerView = oView;
    self.position = position;

    << --- other code --- >>
}

これらのプロパティのインターフェースはこれです(SYNTHESISで更新)

@interface MenuVC (){
    UIView *ownerView_;
    UIView *topView_;
    menuPosition position_;
}

@property (nonatomic, retain) UIView *ownerView;
@property (nonatomic, retain) UIView *topView;
@property (assign) menuPosition position;

@end


@implementation MenuVC
@synthesize list, menuDelegate;
@synthesize ownerView = ownerView_;
@synthesize topView = topView_;
@synthesize position = position_;

- (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)style
{...

列挙型は次のように定義されています。

typedef enum {
    above,
    below,
    centered
} menuPosition;

3 つの割り当てを実行した後、デバッガーのブレークポイントで、値は次のようになります。

ここに画像の説明を入力

受け取ったパラメータ値は問題ないように見えますが、ivarownerView_とに割り当てられた値は正しくありposition_ません。一方、topView大丈夫です。

プロパティではなく ivar に直接割り当てた場合も同じことが起こりました。

Lion (10.7.3) と XCode 4.3.1 にアップグレードしたときに、この問題が発生し始めました。それまでは正常に動作していました。これはアプリの他の場所で見られますが、まだパターンは見られません。

ARC は使用されていません。

以前にこの問題を報告しましたが、回答がありませんでした。この場合、問題の説明はより単純です。これにより、問題が何であるかを簡単に確認できるようになる可能性があります。

UPDATE -- ヘッダー ファイルが追加されました

#import <UIKit/UIKit.h>
@class MenuVC;

@protocol menuDelegateProtocol 

typedef enum {
    above,
    below,
    centered
} menuPosition;


- (void) didSelectItemFromMenu:(MenuVC *)menu atIndex:(NSUInteger) index;

@end

@interface MenuVC : UITableViewController {

    NSArray *list;

    float extendedHeight;

    id<menuDelegateProtocol> menuDelegate;

}

@property (nonatomic, retain) NSArray *list;
@property (nonatomic, assign) id<menuDelegateProtocol> menuDelegate;

- (id) initWithFrame:(CGRect)frame style:(UITableViewStyle)style;
- (void) hide;
- (void) unhide;
- (void) assignOwnerView:(UIView*)oView andPosition:(menuPosition)position withTopView:(UIView*)topView;

@end
4

2 に答える 2

0

デバッガをLLDBからGDBに変更しました。これは LLDB の問題のようです。私は今これを見ていません。

于 2012-04-17T05:44:27.733 に答える
0

プロパティを合成していません。

置く:

@synthetize ownerView = ownerView_;
@synthetize topView = topView_;
@synthetize position = position_;

「@implementation MenuVC」の後。

于 2012-04-16T19:28:22.940 に答える