我在Objective C中创建一个整数数组的属性时遇到了麻烦.我不确定在Obj-C中是否可以做到这一点所以我希望有人可以帮助我找出如何做到这一点正确或提供替代解决方案.
myclass.h
@interface myClass : NSObject {
@private int doubleDigits[10];
}
@property int doubleDigits;
@end
Run Code Online (Sandbox Code Playgroud)
myclass.m
@implementation myClass
@synthesize doubleDigits;
-(id) init {
self = [super init];
int doubleDigits[10] = {1,2,3,4,5,6,7,8,9,10};
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
当我构建并运行时,我收到以下错误:
错误:属性类型'doubleDigits'与ivar'doubleDigits'的类型不匹配
希望有人可以提供解决方案或引导我朝正确的方向前进.
提前致谢.
我在提交多个模型的表单上遇到问题.我有一份投诉表格,其中包括投诉信息以及一对多投诉人.我正在尝试提交表单,但我在绑定上遇到错误.ModelState.IsValid始终返回false.
如果我调试并查看ModelState错误,我得到一个说法:"EntityCollection已经被初始化.应该只调用InitializeRelatedCollection方法在对象图的反序列化期间初始化一个新的EntityCollection".
此外,在调试时,我可以看到投诉模型确实填写了表单提交中的投诉人,因此似乎该部分正在运行.
我不确定使用默认的ModelBinder我是不是可以做什么,或者我是不是以正确的方式去做.我似乎无法找到任何具体的例子或文件.这里可以在stackoverflow上找到一个非常类似的问题,但它似乎并不处理强类型视图.
控制器代码:
public ActionResult Edit(int id)
{
var complaint = (from c in _entities.ComplaintSet.Include("Complainants")
where c.Id == id
select c).FirstOrDefault();
return View(complaint);
}
//
// POST: /Home/Edit/5
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Complaint complaint)
{
if (!ModelState.IsValid)
{
return View();
}
try
{
var originalComplaint = (from c in _entities.ComplaintSet.Include("Complainants")
where c.Id == complaint.Id
select c).FirstOrDefault();
_entities.ApplyPropertyChanges(originalComplaint.EntityKey.EntitySetName, complaint);
_entities.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
查看代码(这是由创建/编辑视图调用的部分视图,它也是使用Complaint强类型的):
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ProStand.Models.Complaint>" %>
<%= …Run Code Online (Sandbox Code Playgroud)