我正在使用Xcode 4,我找不到使用图形谓词构建器的方法.它还在吗?我该如何使用它?这方面的文件在哪里?
谢谢
我正在使用CGRectMake在UITableViewCell内部生成标签和textField.这是代码:
label = [[UILabel alloc] initWithFrame:CGRectMake(20, 10, 0, 20)];
label.backgroundColor = [UIColor redColor];
textField =
[[UITextField alloc] initWithFrame:CGRectMake(0, 10, 0, 20)];
textField.backgroundColor = [UIColor blueColor];
[textField setDelegate:self]; // set the delegate to this object
[textField addTarget:self action:@selector(textFieldDidEndOnExit)
forControlEvents:UIControlEventEditingDidEndOnExit];
[self.contentView addSubview:label]; // add label to the cell
[self.contentView addSubview:textField]; // add textField to cell
Run Code Online (Sandbox Code Playgroud)
首先,我的理解是将参数定义为
CGRectMake(x, y, width, height)
Run Code Online (Sandbox Code Playgroud)
我在单元格中看到的是左侧的标签,右侧是textField.两者之间有一个小空间.
我希望X,Y坐标相对于单元格左上角的0,0点,正值向下和向右.
我对所见所闻感到困惑.
我看到标签位于我单元格的左侧,但它的X值大于textField的X值.textField从标签的右侧开始.
我不明白为什么每个的宽度值都设置为0(零).
此外,是什么使textField采取相对于标签的位置,而不是相对于单元格坐标.
这是一个简单的单元格草图和我在其中看到的内容(设置了背景颜色,我可以清楚地看到CGRects的放置位置):
0,0---------------------------------------------------------------------------------
| |
| ---------------- -----------------------------------------------------------------
| | | |
| | label | | …Run Code Online (Sandbox Code Playgroud) 我正在更新一些代码以使用 Dash 和 plotly。绘图的主要代码是在一个类中定义的。我用 Dash 控件替换了一些 Bokeh 小部件,最后得到了一个如下所示的回调:
class MakeStuff:
def __init__(self, ..., **optional):
...
self.app = dash.Dash(...)
...
@self.app.callback(
dash.dependencies.Output('indicator-graphic', 'figure'),
[dash.dependencies.Input('start-time-slider', 'value'),
dash.dependencies.Input('graph-width-slider', 'value')]
)
def update_graphs(self,range_start,graph_width):
print(...)
Run Code Online (Sandbox Code Playgroud)
我正在关注Dash 网站上的一些示例。我能够运行示例,包括回调。在我的代码中,没有装饰器,代码运行时不会出错,按照我的预期生成图形和控件。(当然,代码不完整,但没有错误。)当我包含装饰器时,我得到这个错误:
NameError: 名称 'self' 未定义
我就这样累了,首先,只是模仿代码示例:
class MakeStuff:
def __init__(self, ..., **optional):
...
app = dash.Dash(...)
...
@app.callback(
dash.dependencies.Output('indicator-graphic', 'figure'),
[dash.dependencies.Input('start-time-slider', 'value'),
dash.dependencies.Input('graph-width-slider', 'value')]
)
def update_graphs(self,range_start,graph_width):
print(...)
Run Code Online (Sandbox Code Playgroud)
当然,变量“app”只在init函数的范围内知道,所以它不起作用也就不足为奇了,给出了类似的错误:
NameError:未定义名称“应用程序”
是否有一种简单的方法可以设置此装饰器使其工作,同时仍将我的代码保留在类定义中?我猜装饰器正在进行一些预处理,但我不太了解它,无法提出解决方案。
我正在尝试使用仪器来处理一些低内存条件.我可以看到物理内存空闲监视器中的内存消耗下降到几MB,即使分配显示所有分配大约为3 MB且总字节数为34 MB.
我已经开始遇到崩溃,因为我将一些操作移动到一个带有NSOperationQueue的单独线程.但是在改变之前我并没有使用乐器.尽管如此,我打赌我做了一些我可以撤消以阻止崩溃的事情.
顺便说一句,没有仪器或连接调试器,它会更加稳定.
我的泄漏几乎没有(在崩溃之前最多可能是一百字节).
当我看Allocations时,我只看到非常原始的对象.并且它报告的总内存也非常低.所以我无法看到我的应用程序如何导致这些低内存警告.
当我从启动时看Heap Shots时,我看不到大约3 MB,在基线和所有堆增长值的总和之间.
我应该怎么看才能找到问题所在?例如,我可以将它隔离到我的一个视图控制器实例吗?或者我的其他一个例子?
我做了什么: 我关闭了设备并重新启动,这带来了显着的改进.仪器未报告低内存警告.另外,我注意到启动时的物理空闲内存在重新启动之前只有大约7 MB,重启后大约为60 MB.
但是,我看到物理可用内存非常规则(周期性)下降,从43 MB下降到6 MB(然后再回升到43 MB).我想知道它造成什么.我没有在这个应用程序中运行任何计时器.(我确实有一些performSelector:afterDelay :,但是在这些测试中它们没有活动.)
我没有使用ARC.
在ShareKit中,代码需要确定rootViewController的位置,以便它可以显示模态视图.出于某种原因,iOS 5中的代码失败了:
// Try to find the root view controller programmically
// Find the top window (that is not an alert view or other window)
UIWindow *topWindow = [[UIApplication sharedApplication] keyWindow];
if (topWindow.windowLevel != UIWindowLevelNormal)
{
NSArray *windows = [[UIApplication sharedApplication] windows];
for(topWindow in windows)
{
if (topWindow.windowLevel == UIWindowLevelNormal)
break;
}
}
UIView *rootView = [[topWindow subviews] objectAtIndex:0];
id nextResponder = [rootView nextResponder];
if ([nextResponder isKindOfClass:[UIViewController class]])
self.rootViewController = nextResponder;
else
NSAssert(NO, @"ShareKit: Could not find a root view …Run Code Online (Sandbox Code Playgroud) 当我设置它时,这看起来很简单,但我无法解释为什么状态栏和导航栏之间存在这种差距.此外,包含的视图看起来可能正确对齐,它只是向下移动的导航栏.差距看起来像状态栏的大小,所以我希望它与它有关,但我不知道是什么.

以下是设置导航控制器的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
advancedVC = [[AdvancedSearchFormVC alloc] initWithNibName:@"AdvancedSearchForm" bundle:nil];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:advancedVC];
nav.navigationBar.tintColor = [UIColor defaultNavBarTint];
nav.navigationBar.topItem.title = NSLocalizedString(@"SearchTitle", nil);
UIBarButtonItem *searchButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"SearchButton", nil) style:UIBarButtonItemStylePlain target:self action:@selector(refreshPropertyList:)];
nav.navigationBar.topItem.rightBarButtonItem = searchButton;
self.view = nav.view;
}
Run Code Online (Sandbox Code Playgroud)
rootViewController使用xib文件中的视图,我在其中模拟了状态栏,导航栏和标签栏.
我有一个按钮,如果有任何东西被按下按钮,我想要消失.所以我设置了目标:action:对于删除按钮:
[self.deleteButton addTarget:self action:@selector(deleteButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)
随后将点击手势识别器添加到包含视图:
[self.superview addGestureRecognizer:self.tapOutsideDelete];
Run Code Online (Sandbox Code Playgroud)
当我这样做时,不执行deleteButton的操作,就像无法识别按钮点击一样.在这种情况下,手势识别器确实有效.但是当我点击deleteButton时它也有效,这让我认为点击手势识别器优先于按钮点击.
如果我删除手势识别器,deleteButton正常工作.
我显然不明白如何一起处理这两个事件.我需要做什么?
(deleteButton正在模仿表格视图单元格的删除按钮,但在这种情况下我将它放在标题视图中.我希望调用一种方法,当我点击表格中除按钮本身之外的任何地方时,删除按钮消失,它在单元格中的工作方式相同.)
我在ShareKit中遇到了这个代码,我不明白作者self在类方法中使用了什么.有一个警告:不兼容的指针类型将'Class'发送到参数类型id<FBSessionDelegate>. 我想清理这些警告,所以我可以看到那些可能会在以后受到伤害的警告.我能做什么/应该做什么不会打破这个?
这是SHKFacebook.m文件,类名是SHKFacebook
+ (void)logout
{
FBSession *fbSession;
if(!SHKFacebookUseSessionProxy){
fbSession = [FBSession sessionForApplication:SHKFacebookKey
secret:SHKFacebookSecret
delegate:self];
}else {
fbSession = [FBSession sessionForApplication:SHKFacebookKey
getSessionProxy:SHKFacebookSessionProxyURL
delegate:self];
}
[fbSession logout];
}
Run Code Online (Sandbox Code Playgroud) 我有一个部分的获取结果.我可以使用[[fetchedResultsController fetchedObjects] objectAtIndex:index]所有对象访问对象.但是当我像这样使用objectAtIndexPath时失败了:[fetchedResultsController objectAtIndexpath:indexPath]
将一行(对于其中一个SearchResult对象)插入相应的表后发生错误.该对象似乎正确插入到新表中.在我直观地确认了这一点之后,我选择了其中一行,然后开始了.
以下是发生错误的代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
SearchResult *event;
NSLog(@"Number of sections in fetchedResultsController: %d", [[fetchedResultsController sections] count]);
for (NSUInteger i=0; i<[[fetchedResultsController fetchedObjects] count]; i++) {
event = (SearchResult*)[[fetchedResultsController fetchedObjects] objectAtIndex:i];
NSLog(@"object at index[%d]: %@", i, event.title );
NSLog(@"indexPath for object at index[%d]:%@", i, [fetchedResultsController indexPathForObject:event]);
}
NSLog(@"indexPath passed to method: %@", indexPath);
SearchResult *result = [fetchedResultsController objectAtIndexPath:indexPath]; // *** here is where the error occurs ***
[viewDelegate getDetails:result];
}
Run Code Online (Sandbox Code Playgroud)
我在最后一行失败了.日志看起来像这样:
Number …Run Code Online (Sandbox Code Playgroud) core-data objective-c uitableview nsfetchedresultscontroller
我有一个复数,我想使用fprintf命令作为文本输出.我没有看到复数的格式规范.是否有捷径可寻?
使用定点的格式规范仅输出实部.
cocoa-touch ×3
ios ×3
objective-c ×3
core-data ×2
callback ×1
class-design ×1
class-method ×1
events ×1
instruments ×1
matlab ×1
plotly-dash ×1
python ×1
uitableview ×1
xcode4 ×1