大家好,
我只是在思考抽象类和接口,我知道它们在技术上是如何工作的,但我不了解抽象类和接口的实际用途.我的意思是,当我们知道无法创建它的对象时,为什么我们应该使用抽象类,我们不得不扩展这个类来使用它,所以为什么我们不把所有东西都放在派生类中.
接口也是如此,我们必须实现接口,所以为什么我们不把接口中定义的所有方法都放在我们实现接口的类中.
有人可以用一些例子清楚我的怀疑吗?
我想要一些类似于iWork如何为Pages设置模板选择屏幕,当你可以选择不同的模板,并且每个视图包含不同的信息有不同的大小等.
我已经尝试了继承NSCollectionView并使用newItemForRepresentedObject方法确定要显示的视图(而不是使用itemPrototype视图Interface Builder),但由于某种原因它没有正确定位视图,并且它没有显示正确的视图数量出现的物品数量.这是我的代码.我希望有人可能有更好的方法来做到这一点,或者是如何做到这一点的一个例子.
personView和companyView是子类NSCollectionView中的属性,它们是IB中视图的IBOutlets.
-(NSCollectionViewItem *)newItemForRepresentedObject:(id)object{
NSCollectionViewItem *collectionViewItem = [[NSCollectionViewItem alloc] init];
[collectionViewItem setRepresentedObject:object];
if([[object valueForKey:@"company"] boolValue] == YES){
NSView *view = [companyView retain];
[collectionViewItem setView:companyView];
}else{
[collectionViewItem setView:personalView];
}
return collectionViewItem;
Run Code Online (Sandbox Code Playgroud)
}
我有一个模型,在模型中有一个方法,如
public Pages GetPage(int? id)
{
return _dataContext.Pages.First(p => p.id == id);
}
Run Code Online (Sandbox Code Playgroud)
如果我传递了错误的参数(如123333-no record it database),则会抛出异常,
序列不包含任何元素
什么是正确的代码版本,或者可以尝试捕获简单的使用?
当我插入一行时,它使用SERIAL递增ID字段.
如何在插入后立即返回新创建的ID号?
(数据库是Postgresql.)
如果我打开了几个OS-X Terminal.app窗口,如何将一个终端窗口移动到另一个空间?
我很高兴使用任何脚本或编程语言来实现这一点,但更喜欢AppleScript或调用标准框架.
(注意,这只是移动应用程序的一个窗口而不是所有窗口.)
我有很长一段时间遇到这个问题 - 我将固定大小的2D数组作为类成员.
class myClass
{
public:
void getpointeM(...??????...);
double * retpointM();
private:
double M[3][3];
};
int main()
{
myClass moo;
double *A[3][3];
moo.getpointM( A ); ???
A = moo.retpointM(); ???
}
Run Code Online (Sandbox Code Playgroud)
我想将指针传递给M外面的矩阵.这也可能是很简单的,但我就是找不到适当的组合&和*等
感谢帮助.
例:
# ddd --debugger /usr/bin/bashdb <sript-name> (on remote host)
Run Code Online (Sandbox Code Playgroud) 我在视图中有以下代码:
<%= Html.ListBoxFor(c => c.Project.Categories,
new MultiSelectList(Model.Categories, "Id", "Name", new List<int> { 1, 2 }))%>
<%= Html.ListBox("MultiSelectList",
new MultiSelectList(Model.Categories, "Id", "Name", new List<int> { 1, 2 }))%>
Run Code Online (Sandbox Code Playgroud)
唯一的区别是第一个帮助器是强类型的(ListBoxFor),并且它无法显示所选项(1,2),即使项目出现在列表中,等等.更简单的ListBox正在按预期工作.
我显然在这里遗漏了一些东西.我可以使用第二种方法,但这真的让我烦恼,我想弄清楚.
作为参考,我的模型是:
public class ProjectEditModel
{
public Project Project { get; set; }
public IEnumerable<Project> Projects { get; set; }
public IEnumerable<Client> Clients { get; set; }
public IEnumerable<Category> Categories { get; set; }
public IEnumerable<Tag> Tags { get; set; }
public ProjectSlide SelectedSlide { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我正在创建一个涉及多个短声道剪辑的Android应用.目前,我正在使用SoundPool菜单活动开始第二次活动时加载我的声音片段.我似乎遇到的问题是,一旦这个辅助活动开始,声音片段的加载会导致多个堆大小溢出,然后在一点之后活动实际加载(模拟器从不给出错误或强制退出).MediaPlayer在这里使用帮助我并保持这些堆大小溢出?
此外,此时,菜单活动开始等待结果的第二个活动(使用该startActivityForResult()功能).这是否意味着菜单活动被保存在内存中以及将第二个活动加载到内存中?如果是这样,我可以通过finish()在第二个菜单活动启动后调用菜单活动来帮助解决我的内存问题(当用户希望返回菜单时重新启动菜单活动,或者这会引发一系列全新的问题吗?) ?
我的WinForms应用程序在Vista/Windows 7上具有标准的Aero玻璃外观.
我想自定义绘制窗口标题栏,以便使用玻璃最小/最大/关闭按钮保留Aero玻璃外观,但没有标题文本和窗口图标.我通过覆盖WM_NCPAINT尝试了这一点,但是重写此事件总是会导致玻璃被移除.
有没有人知道如何用玻璃覆盖WM_NCPAINT以便有效地正确地绘制玻璃区域?
asp.net-mvc ×2
cocoa ×2
macos ×2
adodb-php ×1
aero ×1
aero-glass ×1
android ×1
applescript ×1
arrays ×1
c# ×1
c++ ×1
ddd-debugger ×1
debugging ×1
linux ×1
listbox ×1
objective-c ×1
php ×1
postgresql ×1
soundpool ×1
spaces ×1
winforms ×1