我一直在閱讀,點語法是可能的,但我不斷收到錯誤,該結構不包含我引用的成員。也許它不是點語法,所以我已經包括了我在一個解決方案的希望正在做細節:Objective-C點語法或屬性值?
// MobRec.h - used as the objects in the MobInfo array
#import <Foundation/Foundation.h>
@interface MobRec : NSObject {
@public NSString *mName;
@public int mSpeed;
}
@property (nonatomic, retain) NSString *mName;
@property (nonatomic) int mSpeed;
// MobDefs.h - array of MobRecords
@interface Mobdefs : NSObject {
@public NSMutableArray *mobInfo;
}
@property(assign) NSMutableArray *mobInfo; // is this the right property?
-(void) initMobTable;
@end
// MobDefs.m
#import "Mobdefs.h"
#import "Mobrec.h"
@implementation Mobdefs
@synthesize mobInfo;
-(void) initMobTable
{
// if I use traditional method I get may not respond
[mobInfo objectAtIndex:0 setmName: @"doug"];
// if I use dot syntax I get struct has no member named mName
mobInfo[1].MName = @"eric";
}
// main.h
MobDefs *mobdef;
// main.m
mobdef = [[Mobdefs alloc] init];
[mobdef initMobTable];
雖然這兩種方法應該工作,我得到兩個錯誤回報。我究竟做錯了什麼?我最好的想法是,我使用錯誤的@屬性,但我想我已經嘗試了所有。我正在執行主要的alloc。理想情況下,我想爲這個使用點語法,並不明白爲什麼不允許它。
我想他的意思'[mobInfo objectAtIndex:0] setmName:@ 「豆豆」];'。其他答案似乎糾正了這一點。 – 2009-12-31 17:51:33