我在hudson上丢失了管理员用户密码(实际上它只是随机停止工作),我可以通过禁用安全性(编辑〜/ .hudson/config.xml)然后我可以配置hudson,但我找不到添加新用户或更改/重置用户密码的任何选项 - 禁用安全性时可能不会显示这些选项吗?我正在使用基于矩阵的安全性.如何添加新用户或重置现有用户的密码?
如果我包含一些像这样的自动属性:
@property (nonatomic, readonly) NSInteger test1;
@property (nonatomic, readonly) NSInteger test2;
@property (nonatomic, readonly) NSInteger test3;
@property (nonatomic, readonly) NSInteger test4;
Run Code Online (Sandbox Code Playgroud)
但我不为它们声明任何iVars,我可以在.m文件中@synthesize它们,如下所示:
@synthesize test1;
@synthesize test2;
@synthesize test3;
@synthesize test4;
Run Code Online (Sandbox Code Playgroud)
这没有问题,编译器会自动添加iVars - sizeof(MyClass)显示我的类(正如您所料)比未声明和合成这些属性大16个字节.但是,如果我没有合成它们,我会像这样实现它们:
- (NSInteger)test1
{
return 0;
}
- (NSInteger)test2
{
return 0;
}
- (NSInteger)test3
{
return 0;
}
- (NSInteger)test4
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
然后我的班级恢复到原来的大小.这是根据MyClass的.m文件中的sizeof确定的 - 因此编译器在此阶段知道变量是合成还是实现.
但是,其他类只是从头文件中不知道这一点,sizeof(MyClass)显示的大小没有附加(自动)iVars,无论它们是否合成.这似乎完全搞砸了我,sizeof可以返回不同的值.->如果不能确定类的大小,那么当子类化时以及在子类的公共iVars上使用dereference + offset()运算符时,编译器如何正确运行?
我在地图上有一个自定义注释视图,其中有一个UIButton,但UIButton按下后没有响应.我在注释视图上有两个主要的用户交互问题:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event- 也就是说,如果我返回YES,那么我不希望触摸被发送到MKMapView(可能选择其他注释,这是注释我的注释视图),我想处理在这种情况下触摸自己.我确定userInteractionEnabled已设置为YES并且我已经调查了如何MKAnnotationView通过覆盖touchesBegan等将触摸发送到自定义注释视图(我的子类)- 但似乎触摸通常被取消(我以为我设法得到touchesEnded了几次) - 所以看起来甚至很难手动实现与自定义注释视图的任何用户交互.
有没有人有任何关于允许更多用户与MKAnnotationView对象交互的见解?
(Xcode 4.5)
从命令行运行仪器时,它第一次工作但直到我重新启动后它才会再次运行.
Instruments的详细输出包括:
Instruments : Loading template 'file://localhost/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate'
Instruments : Setting Instrument Trace Command : Instrument Command (purpose:Idle; output destination:file://localhost/Users/xxxxx/instrumentscli0.trace)
Instruments : Trace Command Recognized
Instruments : Instrument 'Automation - MyProject' rejected command 'Instrument Command (purpose:Trace; output destination:file://localhost/Users/xxxxx/instrumentscli0.trace)' for target 'Executable (name:MyProject; arguments:)'
Instruments : Instruments Rejected Command
Instruments Trace Error : Failed to start trace.
Run Code Online (Sandbox Code Playgroud)
我用来运行仪器的命令行是这样的(为清晰起见,分成多行):
instruments -v -w <DeviceID>
-t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate
/Users/xxxxx/dev/MyProject/build/Debug-iphoneos/MyProject.app
-e UIASCRIPT /Users/xxxxx/dev/MyProject/UIAutoTests/some_test.js
Run Code Online (Sandbox Code Playgroud)
我已经尝试比较在第一次(成功)运行之前和之后运行的进程ps以及在使用之前和之后打开了哪些文件/管道lsof,但我找不到任何建议为什么它不会运行多次.
该错误似乎表明仪器内的自动化仪器拒绝该purpose:Trace命令,所以我尝试删除输出跟踪目录(如果自动递增的文件名导致问题),我尝试使用不同的模板运行仪器在运行之间查看是否可以清除阻止它的任何内容,但是每次重新启动时我无法让它工作多次.
我怀疑自动化仪器或仪器使用的共享库中存在一些无效状态.我需要一种方法从命令行重置此状态,以便我可以在CI服务器上可靠地运行自动化测试.
有没有办法比较之前/之后加载的共享库和卸载它们?有没有人对可能存在的内容以及如何重置它有任何其他想法?
例如:
可以在UI中配置这种控件吗?在conf文件中?提交修订时?
我知道你可以从Watch切换到iOS应用程序,但我有一个用例,我想反过来这样做.
用户可以使用比手表上更多的UI来创建一组规则,然后切换到手表(故意用"发送到观看"按钮之类的东西)以监控结果他们会在接下来的30分钟内定期在Watch上进行设置.
这是可能的,如果是这样,你怎么做?
当我在 VS Code 中查看当前更改时,HEAD 位于左侧,本地(可编辑)版本位于右侧。有没有办法交换这些窗格,使本地版本位于左侧?
我正在开发移动应用程序(iPhone,Android和Blackberry),最近从SVN转换为Git.
在我发布版本后的SVN中,我标记相关的分支/修订版以确保其状态被保留,然后我将一个目录添加到此标记并放入已发布的二进制文件中,并且(对于iPhone)还有用于该精确版本的调试符号文件(用于表示以后的任何崩溃报告).这些文件不需要进行版本控制,但是可以方便地存储历史工件和代码以确保它们被备份(SVN具有备份策略,而我的CI服务器上的构建则没有).
我试图找出Git中最好的等价物.可能最接近的是创建一个新分支,添加二进制文件,标记它,并删除分支.但是,我想知道是否有更好的方法可以做到这一点?
理想情况下,我想创建一个标记,然后将二进制文件作为未版本控制的文件附加到标记.这样,它们实际上不会出现在源代码树中,但它们存在于存储库中,与标记关联,以供有权访问存储库的任何人进行检索.在Git中有什么相同的东西吗?
如果willMoveToSuperview在UIView子类上实现,是否保证在视图上调用nil时调用(with )removeFromSuperview?
文档说这个newSuperview参数可能是nil,并且它被称为"每当superview更改"但我不确定我是否可以解释这意味着当视图从其超级视图中删除时将被调用,即使没有被移动到不同的超视图.
这对于一致的命名方法很有用,例如让我们看看UITableViewDataSource协议中的一些方法名称:
numberOfSectionsInTableView:
tableView:heightForHeaderInSection:
tableView:viewForHeaderInSection:
tableView:heightForFooterInSection:
tableView:viewForFooterInSection:
tableView:numberOfRowsInSection:
tableView:cellForRowAtIndexPath:
sectionIndexTitlesForTableView:
Run Code Online (Sandbox Code Playgroud)
注意第一个和最后一个是奇数 - 它们仍然将a UITableView*作为第一个参数,但因为它是唯一的参数,所以命名约定的一致性被破坏.如果它们可以这样命名会更好:
tableView:numberOfSections
tableView:sectionIndexTitles
Run Code Online (Sandbox Code Playgroud)
是否可以定义这样或类似的方法?我试过这些:
- (NSUInteger)specialView:(SpecialView*)specialView numberOfThingies;
- (NSUInteger)specialView:(SpecialView*)specialView numberOfThingies:(void)unused;
Run Code Online (Sandbox Code Playgroud)
第一个是理想的,但会导致头文件出错.第二个是不理想的(如果最后没有冒号会更好)但是它在标题中被接受,我无法弄清楚如何调用它.我尝试过各种变化:
[anObject specialView:aSpecialView numberOfThingies];
[anObject specialView:aSpecialView numberOfThingies:];
[anObject specialView:aSpecialView numberOfThingies:void];
[anObject specialView:aSpecialView numberOfThingies:(void)0];
Run Code Online (Sandbox Code Playgroud)
有办法做我想做的事吗?是否还有其他任何合理的命名约定,以保持这些方法的一致性?
ios ×2
ipad ×2
iphone ×2
objective-c ×2
backup ×1
cocoa-touch ×1
git ×1
hudson ×1
instruments ×1
mapkit ×1
mkannotation ×1
phabricator ×1
svn ×1
tags ×1
uikit ×1
uiview ×1
watchkit ×1