我正在为我的应用程序创建一个源列表,我希望它的结构类似于iTunes,有两种类型的项目:
在我的iTunes比喻中:
iTunes来源列表http://perspx.com/wp-content/uploads/2010/02/itunessourcelist.jpg
到目前为止,我构建数据的方式如下:
Group核心数据实体的形式.SourceListItem常规的Objective-C对象,以便我可以将每个项目与标题,图标,子项目等相关联.SourceListItem实例表示,存储在我的控制器对象的数组中.我不确定如何将这两种类型的项目合并到源列表中,以便固定项目位于顶部并始终存在且不会更改,可编辑项目位于底部,可以移动和编辑.
这些是我到目前为止提出的想法:
将固定项添加到Core Data模型.这意味着我可以创建一个实体来表示源列表项,并将我的固定和可编辑项放在这些项的实例中.然后可以使用Array/Tree Controller将这些绑定到Outline View表列.但是,这意味着我必须创建一个新实体来表示源列表项,然后将其Group与此同步.我还必须有一些方法只创建一次所有固定项目,如果任何持久存储文件发生了某些事情,那么固定项目将不会显示.
将固定项目与组项目合并.虽然两者都存储在单独的数组中,但是当Outline View请求数据时(如果采用NSOutlineViewDataSource协议,而不是绑定),这可以在我的窗口的控制器中完成.但是,这意味着我必须为SourceListItem阵列控制器中的每个组创建新的s(将每个组与图标和其他属性相关联),存储这些,然后观察组阵列控制器以进行更改以删除,添加或修改SourceListItem实例对组进行更改.
有没有人对如何实现这个有更好的想法?
我希望我的应用程序与OS X v10.5兼容,所以我更喜欢任何不依赖于安装Snow Leopard的解决方案.
我想实现一个集合,其项目需要进行空虚测试.在引用类型的情况下,将测试为null.对于值类型,必须实现空测试,并且可能选择表示空白的特定值.
我的T的一般集合应该是两个值和参考类型值可用(意味着Coll<MyCalss>和Coll<int>都应该是可能的).但我必须以不同方式测试引用和值类型.
拥有一个实现IsEmpty()方法的接口,从我的泛型类型中排除这个逻辑,这不是很好吗?但是,当然,这个IsEmpty()方法不能是成员函数:它无法在空对象上调用.
我找到的一个解决方法是将收集项目存储为对象,而不是Ts,但它让我头疼(围绕拳击和强类型).在旧的C++中没有问题:-)
下面的代码演示了我想要实现的目标:
using System;
using System.Collections.Generic;
namespace StaticMethodInInterfaceDemo
{
public interface IEmpty<T>
{
static T GetEmpty(); // or static T Empty;
static bool IsEmpty(T ItemToTest);
}
public class Coll<T> where T : IEmpty<T>
{
protected T[] Items;
protected int Count;
public Coll(int Capacity)
{
this.Items = new T[Capacity];
this.Count = 0;
}
public void Remove(T ItemToRemove)
{
int Index = Find(ItemToRemove);
// Problem spot 1: This throws a compiler error: "Cannot convert null …Run Code Online (Sandbox Code Playgroud) 我有一个新手问题!我想做这样的事情:
puts Example.new([a,b,c])
Run Code Online (Sandbox Code Playgroud)
结果是
=> a,b,c
Run Code Online (Sandbox Code Playgroud)
我试过这样的事情:
class Example
attr_accessor :something
def initialize(something)
@something = something
puts @something
end
end
Run Code Online (Sandbox Code Playgroud)
它有效,但不是我想要的!谢谢!
我正在阅读K&R中关于C的联合,据我所知,联合中的单个变量可以包含几种类型中的任何一种,如果某些东西存储为一种类型并且提取为另一种,则结果纯粹是实现定义的.
现在请检查以下代码段:
#include<stdio.h>
int main(void)
{
union a
{
int i;
char ch[2];
};
union a u;
u.ch[0] = 3;
u.ch[1] = 2;
printf("%d %d %d\n", u.ch[0], u.ch[1], u.i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
3 2 515
Run Code Online (Sandbox Code Playgroud)
在这里,我在分配值u.ch,但来自检索u.ch和u.i.它是实现定义的吗?或者我做的事情真的很傻?
我知道这对其他大多数人来说似乎都是初学者,但我无法弄清楚输出背后的原因.
谢谢.
我想解析下面的字符串以获取值"46.4400 INR"
<div id=currency_converter_result>1 USD = <span class=bld>46.4400 INR</span>
<input type=submit value="Convert">
</div>
Run Code Online (Sandbox Code Playgroud)
我需要使用什么正则表达式?
我在 Apache FtpServer 的文档中发现了这个非常简单的描述:
与 Spring 框架集成
Apache FtpServer 使用 Spring Framework 来实现配置。这也意味着我们获得了与常规 Spring XML 配置完全集成的额外好处。例如,您可以在 Spring 配置中的任何位置嵌入“服务器”元素,并且在类路径上使用 FtpServer,Spring 将为您连接服务器。
没有别的关于:
我是否学习过 Spring 的 Configure Framework 以了解所有相关信息?
在此文章中,有人认为,使用内存缓存如果你经常从数据库中获取随机实体,和Squid如果使用REST架构.请解释原因(关于鱿鱼).
我已经尝试过Apache FTP Server但它缺乏文档和支持.
它完全基于Spring配置框架,我认为我不能很快理解.
我想要的只是
有什么建议吗?
我正在开发一种脚本语言,它可以编译自己的虚拟机,这是一个简单的脚本语言,可以处理某些数据,如点,向量,浮点数等等.内存单元以这种方式表示:
struct memory_cell
{
u32 id;
u8 type;
union
{
u8 b; /* boolean */
double f; /* float */
struct { double x, y, z; } v; /* vector */
struct { double r, g, b; } c; /* color */
struct { double r, g, b; } cw; /* color weight */
struct { double x, y, z; } p; /* point variable */
struct { u16 length; memory_cell **cells; } l; …Run Code Online (Sandbox Code Playgroud) 我发现很多人使用闭包和块互换的词.这些人中的大多数都无法解释他们在谈论什么.
一些Java程序员(甚至来自真正昂贵的咨询公司)将匿名内部类称为"块"和"闭包" - 但我知道这不是真的.(你不能从定义它们的方法范围中传递可变变量......)
我在找:
我真的很想看到关于这些的链接,文章或书籍参考.
theory computer-science programming-languages language-theory