我创建了一个相当简单的iPhone应用程序 然后我想我会创建一个应用程序的iPad版本(Universal).尝试使用'升级'选项,但没有解决问题.所以我创建了一个单独的通用应用程序并将xib文件复制到我的项目中.这也没有用,所以我删除了xib文件(及其相关的.m和.h文件.
现在,当我运行iPhone版本时,它在Interface Builder文件中为我提供了未知类iPadSample1AppDelegate.错误和UISplitViewController仅在UIUserInterfaceIdiomPad下运行时支持,然后退出.所以,我恢复了我在开始iPad冒险之前拍摄的快照......我得到了同样的错误.我已经尝试过XCode搜索和Spotlight搜索.在我的项目中的任何地方都没有引用该类或UISplitViewController,但出于某种原因,XCode认为存在.
有没有办法删除不存在的引用?大声笑
更新:
它可能与我的XCode环境有关.在这里找到其他一些帖子之后,我尝试了一个Clean All/Build/Touch,当我触摸时,我在XCode中遇到以下错误:
未捕获的异常:
- [XCBuildLogWarningMessage setFileLocations:]:无法识别的选择器发送到实例0x2014dd0a0
无论如何重新安装XCode而不搞乱其他一切?
我已经阅读了官方文档,我理解了哪些类引用,但我没有看到它们何时以及为什么它们是替代品的最佳解决方案.
文档中引用的示例是TCollection,可以使用TCollectionItem的任何后代进行实例化.使用类引用的理由是它允许您在编译时调用类型未知的类方法(我假设这是TCollection的编译时).我只是没有看到使用TCollectionItemClass作为参数如何优于使用TCollectionItem.TCollection仍然能够保存TCollectionItem的任何后代,并且仍然能够调用TCollectionItem中声明的任何方法.不是吗?
将其与通用集合进行比较.TObjectList似乎提供与TCollection大致相同的功能,并具有类型安全性的额外好处.您无需继承TCollectionItem以存储对象类型,您可以根据需要将集合设置为特定类型.如果您需要从集合中访问项目的成员,则可以使用通用约束.除了在Delphi 2009之前程序员可以使用类引用这一事实之外还有其他令人信服的理由将它们用于通用容器吗?
文档中给出的另一个示例是将类引用传递给充当对象工厂的函数.在这种情况下,工厂用于创建TControl类型的对象.它不是很明显,但我假设TControl工厂正在调用传递给它的后代类型的构造函数而不是TControl的构造函数.如果是这种情况,那么我开始至少看到使用类引用的一些原因.
所以我想我真正想要了解的是什么时候和哪些类引用最合适,他们买了什么开发人员?
实际上这是一个答案而不是一个问题:我在Windows上花了很多时间使用JodaTime使用ProGuard将其包含在我的Android项目中
Proguard配置:
-libraryjars C:\Users\Reto\Documents\GitHub\advanceIT\LoveClockPAY\libs\joda-time-2.1.jar
Run Code Online (Sandbox Code Playgroud)
我有以下错误:
ProGuard没有找到我的JAR并说:
Can't read [C:\Users\Reto\Documents\GitHub\advanceIT\LoveClockPAY\libs\joda-time-2.1.jar] (No such file or directory)
解
-libraryjars libs/joda-time-2.1.jar
ProGuard不想编译并抛出许多错误,如下所示:
Warning: org.joda.time.base.AbstractDuration can't find referenced class org.joda.convert.ToString
解
# Exclude those 2 dependency classes, cause otherwise it wont compile
-dontwarn org.joda.convert.FromString
-dontwarn org.joda.convert.ToString
我习惯用Java编程并使用类变量来访问其他类的数据.然后我发现类变量在Obj-C中的工作方式不同,并且遇到了问题.
我的问题是我想在用户登录后访问另一个类中的用户输入密码.已经阅读了不同的论坛,我应该使用类方法(+)来访问这些数据.但是因为我需要在第二类中创建第一个类的新实例,这意味着输入的密码不存在于第一类的新实例中.
我的代码如下:
class1.h
@interface class1 : UIViewController {
UITextField *usernameField;
UITextField *passwordField;
UIButton *loginButton;
NSString *password;
}
@property (nonatomic, retain) IBOutlet UITextField *usernameField;
@property (nonatomic, retain) IBOutlet UITextField *passwordField;
@property (nonatomic, retain) IBOutlet UIButton *loginButton;
@property (nonatomic, retain) NSString *password;
-(IBAction) loginButtonPushed;
+(NSString *)password;
@end
Run Code Online (Sandbox Code Playgroud)
class1.m
#import "viewSwitcherViewController.h"
@implementation viewSwitcherViewController
@synthesize usernameField;
@synthesize passwordField;
@synthesize loginButton;
@synthesize password; // not needed
-(IBAction) loginButtonPushed {
password = passwordField.text; //not needed
// ...Code for switching view if successful login... EDITED:
class2 …Run Code Online (Sandbox Code Playgroud) 我想知道的是,对象是否会从一个类引用来创建一个特定的类或任何其后代的一个实例.
换句话说,我想要一个布尔表达式,如
var is TMyClass
Run Code Online (Sandbox Code Playgroud)
但是var被替换为涉及类引用变量的表达式.这听起来很容易,但让我完全难过.
我可以创建一个实例var:= classRefVar.Create,测试它,然后销毁它,但这是一个巨大的开销.
奇怪的是,编译器不会让我拥有
classRefVar(nil) is TMyClass
Run Code Online (Sandbox Code Playgroud)
但对于看似等效的语法却很无用,却很无用
TMyClass(nil) is TMyClass
Run Code Online (Sandbox Code Playgroud)
显然,表达
classRefVar = TMyClass
Run Code Online (Sandbox Code Playgroud)
并不好,因为classRefVar可能引用了TMyClass的后代.
当我看到答案时,我期待着自己踢...
我需要http://developer.apple.com/library/ios/navigation/的离线版本
这样的事情存在吗?谢谢
我又来了这里.我有这个主要形式:
它只是一个简单的表单,用于理解框架的使用.使用表单顶部的两个按钮,我想打开这两个框架:
帧1
和Frame2
这是代码第一帧的简单代码:
unit AppFrame1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
Vcl.StdCtrls;
type
TFrame1 = class(TFrame)
lblFrame1: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
end.
Run Code Online (Sandbox Code Playgroud)
这是第二帧的代码:
unit AppFrame2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
Vcl.StdCtrls;
type
TFrame2 = class(TFrame)
lblFrame2: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
end.
Run Code Online (Sandbox Code Playgroud)
所以在两帧中没有什么特别之处.为了从主窗体打开框架,我创建了一个这样的界面:
unit FramesManager;
interface …Run Code Online (Sandbox Code Playgroud) 我有以下结构 Javacript es5-es6 并且控制器类丢失了类 Get 中的引用,我已经在调查,但找不到如何避免丢失引用。
class Controller {
constructor() {
this.name = 'Test';
}
test() {
console.log(1, this.name);
}
}
referenceController = new Controller();
// working reference: console.log(1, 'Test');
referenceController.test();
class Get {
method() {
return {
controller: referenceController.test
}
}
}
// Lost self reference: console.log(1, undefined)
new Get().method().controller()
Run Code Online (Sandbox Code Playgroud) 我已经使用了一段时间的C++,偶尔会让我感到困惑的一件事是我还没有弄清楚如何在C++中使用这个Delphi Factory构造.
我无法弄清楚的关键部分是如何在C++中传递对类类型的引用.在Delphi中,我们有"TClass"类型.这种类型的变量是对某些类的引用.我们可以使用class of MyClass语法来限制类引用可以引用的类来定义新的类引用类型.
注意术语"Delphi类引用"=/="类的C++实例"
对于那些不熟悉Pascal的人来说,变量是声明的variable: type而不是C风格type variable.同样,函数的返回类型出现在参数列表和名称之后.
我已经在下面的例子中浓缩了语法,以减少它的样板,所以对Delphi开发人员道歉,因为它的格式很糟糕.关键部分在评论中描述.
program demo;
{$APPTYPE CONSOLE}
// declarations
type
Base = class
public constructor Create(name: string); virtual;
end;
// Class reference which refers to Base and its descendants
BaseClass = class of Base;
ChildA = class(Base)
public constructor Create(name: string); override;
end;
ChildB = class(Base)
public constructor Create(name: string); override;
end;
// implementation
constructor Base.Create(name: string);
begin
WriteLn('Base says hi to ' + name); …Run Code Online (Sandbox Code Playgroud) delphi ×4
metaclass ×3
iphone ×2
objective-c ×2
android ×1
c++ ×1
ecmascript-6 ×1
factory ×1
frames ×1
ios ×1
javascript ×1
jodatime ×1
proguard ×1
xcode ×1