Objective c 如何插入“;“无”;将值放入绑定到tableview的数组中?
我想就一件事给出一些提示: 在绑定到tableview列的数组中,我有一些数字(浮点)值。使用界面按钮输入(放入数组)这些值,标记为“0”、“1”、“2”等。还有一个“C”按钮用于取消输入 稍后,我将对这个数组进行一些计算。如果未输入结果,则数组的对象不能为0。“No value”当然最好用“nil”来表示……但不允许在数组中插入nil对象(nil表示“数组结束”) NSArray包含对象。也就是说,在这里,这些对象必须是数字。所以我可以用[NSNumber numberWithDouble:…]double填充数组来初始化数组什么?我不能把零放在这里 真正的NSArray不(不能)包含“孔”。但我必须这样做,例如,如果第三项从未收到值。我怎样才能: 为我的NSNumber实现一个“未定义”值? 是否让“C”按钮删除先前输入的结果 必须有解决办法。在ApplescriptObjC中,我使用了一个技巧:我使用每个按钮调用的方法,使用它的标题进行属性设置,因此:Objective c 如何插入“;“无”;将值放入绑定到tableview的数组中?,objective-c,nsarray,Objective C,Nsarray,我想就一件事给出一些提示: 在绑定到tableview列的数组中,我有一些数字(浮点)值。使用界面按钮输入(放入数组)这些值,标记为“0”、“1”、“2”等。还有一个“C”按钮用于取消输入 稍后,我将对这个数组进行一些计算。如果未输入结果,则数组的对象不能为0。“No value”当然最好用“nil”来表示……但不允许在数组中插入nil对象(nil表示“数组结束”) NSArray包含对象。也就是说,在这里,这些对象必须是数字。所以我可以用[NSNumber numberWithDouble:…
if sender's title as string is "C" then
set item theRow of gResult to missing value -- the row was the selected line, gResult was a AS list.
else
set item theRow of gResult to sender's title as real
end if
我在这里该怎么办?
-选择一个特殊值(比如-1)来表示未定义的值,然后使用NSPredicate来筛选我的数组?
-当特殊值是某物并出现在单元格中(偶数)时,如何将单元格变为“无”
我相信这个问题有一个优雅的解决方案。但现在我只是把我剩下的一点点头发撕下来
感谢您的帮助…您可以添加一个NSNull对象来表示空值。您可以添加一个NSNull对象来表示空值。您的NSArray中需要一个“可分辨”对象。当您看到这个特殊的对象时,您的代码会做一些不同的事情。这样一个“杰出的”对象通常被称为“哨兵”,它可以是任何东西。例如:
static NSNumber *theSentinel;
/* initialize theSentinel somewhere with */
theSentinel = [NSNumber numberWithFloat: <anyfloat-doesnt'-matter-which>];
您的NSArray中需要一个“杰出”对象。当您看到这个特殊的对象时,您的代码会做一些不同的事情。这样一个“杰出的”对象通常被称为“哨兵”,它可以是任何东西。例如:
static NSNumber *theSentinel;
/* initialize theSentinel somewhere with */
theSentinel = [NSNumber numberWithFloat: <anyfloat-doesnt'-matter-which>];
NSArray必须始终包含对象,nil是指示数组结束的标志。因此,为了将nil值表示为对象,应使用NSNull,如下所示:
[NSNull null]
NSArray必须始终包含对象,nil是指示数组结束的标志。因此,为了将nil值表示为对象,应使用NSNull,如下所示:
[NSNull null]
请将代码格式化为代码以提高可读性。有关如何执行此操作,请参阅。请将代码格式化为代码以提高可读性。有关如何执行此操作的信息,请参阅。如果执行此操作,表格视图将在单元格中显示“”。不好。那么你检查空值,不显示它,就是这样。你是如何控制你的细胞的?听起来这根本不是定制的。不,它们是简单的文本单元格,绑定到arrayController。注意:这些单元格的基本行为正常:它们显示可以编辑的值,设置为空白字符串以表示“无值”。我的问题是用这些单元格计算。可能是一个“屏幕外”数组,将NSString数组转换为NSNumber数组,从空白值中过滤?我可以发誓Cocoa有一个名为NSNil的常量,但我现在似乎找不到它。它可能是NSValueTransformer(NSIsNil)…如果我这样做,表格视图会在单元格中显示“”。不好。那么你检查空值,不显示它,就是这样。你是如何控制你的细胞的?听起来这根本不是定制的。不,它们是简单的文本单元格,绑定到arrayController。注意:这些单元格的基本行为正常:它们显示可以编辑的值,设置为空白字符串以表示“无值”。我的问题是用这些单元格计算。可能是一个“屏幕外”数组,将NSString数组转换为NSNumber数组,从空白值中过滤?我可以发誓Cocoa有一个名为NSNil的常量,但我现在似乎找不到它。它可能是NSValueTransformer(NSIsNil)…如果我这样做,表格视图会在单元格中显示“”。这不是所使用的end所期望的。如果我这样做,表视图将在单元格中显示“”。这不是一个终端所期望的。我认为使用谓词是最好的解决方案。我可以用一个“屏幕外”数组来进行计算。但我还是坚持使用谓词的格式。应该类似于NSArray*myFilteredArray=[[NSArray array]FilteredArray UsingPredicate:nonNullPredicate]但如何定义格式“property xy!=''”?NSPredicate的文档应该是您的参考。(非谓词)和运算符'!='提供。如何应用将取决于您的设置细节。我认为使用谓词是最好的解决方案。我可以用一个“屏幕外”数组来进行计算。但我还是坚持使用谓词的格式。应该类似于NSArray*myFilteredArray=[[NSArray array]FilteredArray UsingPredicate:nonNullPredicate]但如何定义格式“property xy!=''”?NSPredicate的文档应该是您的参考。(非谓词)和运算符'!='提供。如何应用将取决于设置的详细信息。