昨天一切都很好.我今天开始研究我的项目,Eclipse给了我一堆问题.首先,它不会让我调试说"无法连接到虚拟机".我并不完全记得我是如何解决这个问题的,但我做到了.我能够再次调试.我刚刚创建了一个新项目来测试与我的主项目分开的东西,现在Eclipse给了我更多的问题.这次它说"在发生New_configuration期间发生了一个内部错误".项目的路径必须只有一个段.
经过一番搜索,我发现它与调试配置有关.为了现在调试项目,我必须转到Run-> Run Configurations并选择我想要调试的项目.以前,它会自动为我做这件事.我只是从项目中选择一个java文件,它将调试包含该文件的项目.另外,我在Run-> Run Configurations下的Android应用程序列表中找不到我的新项目.我已经尝试在菜单中创建一个新的,但是在指定源时它找不到我的项目文件夹,即使它在Eclipse中已经清楚地打开了.Eclipse最近给我带来了巨大的麻烦,我不明白是什么导致这种情况发生.Eclipse整夜都处于打开状态,计算机没有进入睡眠模式(抱歉浪费电力!).
关于如何让它看到我的项目并让它自动调试正确的项目的任何想法?
这似乎是最简单的Git问题,但我找不到任何关于它的东西.
所以对于Git的新手,我知道如何添加,提交,然后将文件推送到我的GitHub帐户.但是,我如何创建一个新项目并在该存储库和旧存储库之间切换?将cd'ing到适当的目录然后远程添加每次工作,或者我可以立即cd和推?这看起来真的很乏味.我想我错过了Git的基本观点.
我正在关注 Apple 的本教程(链接),并注意到示例项目是.swiftpm导入到 Xcode 15 Beta 中的文件。我还没有在 Xcode 14 上尝试过。
在检查Package.swift文件时,我发现了一种新的产品类型iOSApplication:
.iOSApplication(
name: "Capturing Photos",
targets: ["App"],
teamIdentifier: "XXX",
displayVersion: "1.0",
bundleVersion: "1",
appIcon: .asset("AppIcon"),
supportedDeviceFamilies: [
.pad,
.phone
],
supportedInterfaceOrientations: [
],
capabilities: [
.camera(purposeString: "This sample app uses the camera."),
.photoLibrary(purposeString: "This sample app uses your photo library.")
]
)
Run Code Online (Sandbox Code Playgroud)
这似乎是xcodeproj文件的完全替代品。我在 SPM 文档中找不到任何提及此内容的信息。与 xcodeproj 的蓝色图标相比,该项目的根目录还有一个新的 Swift 徽标图标。
我还可以为我的 iPhone 设备构建和部署这个项目。
这已经在任何地方宣布了吗?是否有有关支持的功能/API 的更多信息(自动完成没有帮助)?它还没有作为一个选项出现在 Xcode 15 项目向导中,但想必我们现在就可以开始使用它了?
我正在尝试开始使用这个库:32英尺
我有一个Broadcomm蓝牙堆栈,但无法弄清楚如何设置此库.当我运行我的代码时,我得到:
未处理的异常:System.PlatformNotSupportedException:找不到支持的蓝牙协议栈.
在他们的网站上挖掘后,我发现了这一点:安装说明
它说将相应的DLL复制到项目中,然后运行Test32FeetWidcommWin32.exe.我已经尝试将文件放在我的Visual Studio项目中的每个文件夹中,然后运行该EXE,但我仍然得到相同的错误.最初我尝试添加InTheHand.Net.Personal.dll文件作为我的项目的参考,但这也不起作用.
我能做错什么?
这似乎是一本非常普通的书(Cormen,Leiserson,Rivest,Stein),因此希望有人能够提供帮助。在第八章中,给出了计数排序的算法。在有输入数组A的位置找到数组C大小的范围是从0到k,这很有意义。然后使C [i]包含A中等于i的元素数。例如:
A: [2,5,3,0,2,3,0,3]
C: [2,0,2,3,0,1]
Run Code Online (Sandbox Code Playgroud)
但是在此之后,它们使C [i]包含的元素数小于或等于i。例如:
C: [2,2,4,7,7,8]
Run Code Online (Sandbox Code Playgroud)
为什么这是必要的?您不能只遍历原始C并从中获得一个排序的数组吗?您知道每个数字的确切计数,因此您可以按照顺序将每个数字的正确数量放入B并具有排序的数组。从第一种形式转换为第二种形式是否会使C稳定?
我试图让我的代码更具多态性.现在我有一个有四个不同子类的超类.我有一个接受超类作为类型的方法.我想在将其路由到另一个方法来处理其他操作之前执行一些通用操作.这就是我想象的:
public void performSomething(Super object) {
//do some generic action each time to object
object.setSuperProperty();
//now route to appropriate method to perform specific action
doSpecific(object);
}
private void doSpecific(SubA object) { }
private void doSpecific(SubB object) { }
private void doSpecific(SubC object) { }
private void doSpecific(SubD object) { }
Run Code Online (Sandbox Code Playgroud)
这样,如果我想添加更多功能 - 通过创建一个新的子类或其他 - 那么我只需要添加另一个具有正确子类类型的方法.但是,这是不可能的,因为编译器抱怨没有doSpecific(Super object)方法.相反,performSomething(Super object)我必须做一个丑陋的事情:
if(object instanceof SubA)
doSpecific((SubA)object);
else if(object instanceof SubB)
doSpecific((SubB)object);
...
Run Code Online (Sandbox Code Playgroud)
除了必须执行所有instanceof检查之外,还有更好的方法吗?有没有我想到的设计模式?我知道我将失去编译时类型检查安全性,但只是好奇其他解决方案可能存在的内容.
编辑:忘了提这个. performSomething并且doSpecific是我打电话的不相关课程的一部分ClassA …
据我所知,制作一个Parcelable对象可以将它转换为紧凑的二进制格式,使其成为IPC的理想选择.我的问题是为什么不推荐这种二进制格式用于持久性.在文档中反对它的论点是二进制格式可能会改变并导致问题,这显然是有道理的,但对其他事情也不是这样吗?例如,通过序列化,您仍然可以通过更改它来破坏对象(我相信),对于数据库,您需要手动处理迁移.
从理论上讲,如果用户知道一个对象永远不会改变,那么坚持使用Parcelable二进制格式可以吗?在许多情况下,与现有解决方案(例如使用GSON持久化对象String或使用序列化本身)相比,这将非常有用且快速.
话虽如此,我有什么遗漏吗?是否存在所有Parcel内部隐藏的原因,并且没有:
public byte[] Parcel.toByteFormat(Parcelable object)
public Parcelable Parcel.fromByteFormat(byte[] parcel, Class objectClass) throws InvalidParcelFormatException
Run Code Online (Sandbox Code Playgroud)
存在?
我有一个类似的课程 SomeController<A where A: ProtA>
我有一些子类 SubController: SomeController<SubA>
这是我如何尝试键入检查的工作示例:
protocol SomeProtocol {
}
class SuperClass<A where A: SomeProtocol> {
}
class SubProtocol: SomeProtocol {
}
class SubClass: SuperClass<SubProtocol> {
}
func classTest<A where A: SomeProtocol>(classToTest: SuperClass<A>) {
switch classToTest {
case is SubClass: // Has warning 'Cast from SuperClass<A> to SubClass always fails'
print("I'm a SubClass")
default:
print("Wasn't found")
}
}
classTest(SubClass()) // Prints "I'm a SubClass"
Run Code Online (Sandbox Code Playgroud)
从功能上来说,代码完全符合我的要求,但是,我留下了大量的警告 Cast from SuperClass<A> to SubClass always fails
显然这些类型是相关的,显然代码运行良好并且不会"总是失败",所以这个警告似乎是错误的.这是类型系统的当前限制或边缘情况,还是有办法使警告消失?
我正在尝试将VirtualEnv用于我正在创建的Flask应用程序,因为每个人都建议我这样做.在创建我的虚拟环境之后,我在激活环境时使用pip安装了我需要的库.我正在使用此脚本遇到ImportError问题.当我不在虚拟环境中时,代码工作正常.
我的剧本:
#!/usr/bin/python
import sc2reader
...
...
Run Code Online (Sandbox Code Playgroud)
当我尝试运行它时,我得到了这个:
(flaskapp)xxxx@xxxx-VirtualBox:~/flaskapp/bin$ ./test.py
Traceback (most recent call last):
File "./test.py", line 3, in <module>
import sc2reader
ImportError: No module named sc2reader
Run Code Online (Sandbox Code Playgroud)
我已经尝试更改shebang以反映我的Python的VirtualEnv路径,但这并没有解决任何问题.该库site-packages位于我的虚拟环境中的文件夹中,因此我不确定为什么我会收到ImportError.
我之前从未使用过VirtualEnv所以我假设我配置错了所以它没有看到我的网站包.
我正在尝试与在Delphi中创建的DLL库进行交互.在C++中,我使这个调用非常好:
for(int y = 1; y <= 12; y++)
{
char * chanName = (char *) malloc(21);
memset(chanName,0,21);
channelName(y,20,chanName);
...
}
Run Code Online (Sandbox Code Playgroud)
channelName类型定义为何处typedef int (CALLBACK* ChannelName)(int,int,char*);
现在我想在C#中做同样的事情.我搜索并发现它StringBuilder通常用作DLL函数的char指针.这是我如何声明我的功能:
[DllImport("myDLL.dll")]
public static extern int ChannelName(int x, int y, StringBuilder z);
Run Code Online (Sandbox Code Playgroud)
以下是我试图称之为:
for (int x = 0; x < 12; x++)
{
StringBuilder b = new StringBuilder(100);
DLLInterface.ChannelName(x+1, b.Length, b);
Console.WriteLine(b.ToString());
}
Run Code Online (Sandbox Code Playgroud)
这只是让控制台打印出乱码,例如:
? §
? î?8f9
? î?8f9
? î?8f9
? î?8f9
? î?8f9
? î?8f9
? î?8f9
? …Run Code Online (Sandbox Code Playgroud) android ×2
c# ×2
.net ×1
32feet ×1
algorithm ×1
bluetooth ×1
c++ ×1
dllimport ×1
eclipse ×1
git ×1
github ×1
importerror ×1
inheritance ×1
ios ×1
java ×1
parcelable ×1
pointers ×1
polymorphism ×1
python ×1
sorting ×1
swift ×1
virtualenv ×1
xcode ×1