【问题标题】:Cannot pass string through classes无法通过类传递字符串
【发布时间】:2010-10-05 19:26:53
【问题描述】:
//Initialize the detail view controller and display it.
OrderDetailsView *dvController = [[OrderDetailsView alloc] initWithNibName:@"OrderDetailsView" bundle:[NSBundle mainBundle]];
dvController.selectedOrder = (@"%@",selectedOrder);
[self.navigationController pushViewController:dvController animated:YES];
[dvController release];
dvController = nil;
似乎是什么问题?
我收到错误:无法设置对象 - 只读属性或未找到设置器
【问题讨论】:
标签:
iphone
objective-c
string
nsstring
【解决方案1】:
在 OrderDetailsView.h 中添加以下内容:
@property (nonatomic, retain) [TYPEOFSELECTEDORDER]* selectedOrder;
在 OrderDetailsView.m 中:
@synthesize selectedOrder;
【解决方案2】:
为了帮助您,我们需要 OrderDetailsView 标头内容(尤其是 selectedOrder 出现的部分)。
鉴于错误,我会说您没有像这样在标题中声明该属性:
@property(retain) NSString *selectedOrder;
然后您可以自己在实现文件 (OrderDetailsView.m) 中为该属性定义 setter 和 getter,如下所示:
- (NSString *) selectedOrder {
// your getter implementation here
}
- (void) setSelectedOrder:(NSString *) value {
// your setter implementation here
}
或者您可以在类实现的顶部使用@synthesize selectedOrder;。
鉴于您在@property 中提供的信息,@synthesize 将为您处理所有内存内容