UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapTapTap:)];
[self.view1 addGestureRecognizer:tapGesture];
[self.view2 addGestureRecognizer:tapGesture];
[tapGesture release];
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,只view2识别了点击.如果我注释掉第三行,那么点击就会view1被识别出来.如果我是对的,你只能使用一次手势识别器,我不确定这是一个bug还是只需要一些文档.
我有一个小的Bash脚本,用于访问twitter并在某些情况下弹出Growl通知.什么是处理脚本存储密码的最佳方法?
我想将这个脚本提交给git repo并在GitHub上提供它,但我想知道在执行此操作时保持登录/密码私有的最佳方法是什么.目前,密码存储在脚本本身中.我无法在推送之前将其删除,因为所有旧提交都将包含密码.没有密码的开发不是一种选择.我想我应该将密码存储在外部配置文件中,但我想我会检查是否有一种既定的方法来处理这个问题,然后再尝试把它放在一起.
我知道当我想解开键盘时,我需要告诉我的UITextField辞职第一响应者,但我不知道如何知道用户何时按下键盘上的"完成"键.我可以留意通知吗?
截图http://i39.tinypic.com/oiermb.png
我正在为UIImagePickerController添加一个自定义叠加层,并且视图底部有一个持久的黑条.这是我实例化控制器的代码.
- (UIImagePickerController *)imagePicker {
if (_imagePicker) {
return _imagePicker;
}
_imagePicker = [[UIImagePickerController alloc] init];
_imagePicker.delegate = self;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
_imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
_imagePicker.showsCameraControls = NO;
_imagePicker.wantsFullScreenLayout = YES;
_imagePicker.navigationBarHidden = YES;
_imagePicker.toolbarHidden = YES;
} else {
_imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
}
return _imagePicker;
}
Run Code Online (Sandbox Code Playgroud)
返回的控制器以模态方式显示,并且当我没有隐藏相机控件时工作正常(即显示全屏).
感谢Ole的建议,我使用了这段代码:
// Resize the camera preview
_imagePicker.cameraViewTransform = CGAffineTransformMakeScale(1.0, 1.03);
Run Code Online (Sandbox Code Playgroud)
高度增加3%就可以了.当我在屏幕底部添加自定义工具栏时,窗口上不再有可见的黑条.
今天我将我的系统更新为Lion并尝试更新Xcode.从app store下载后,我收到错误消息.
所以我通过这个命令删除旧的Xcode 4.0
/ Developer/Library/uninstall-devtools -mode = all
但现在在应用程序商店我的状态为"已安装",无法重新安装我的Xcode.那么我必须做什么?
ps垃圾桶很清楚.
我正在发布一个小图片,所以我希望超时间隔很短.如果图像在几秒钟内没有发送,它可能永远不会发送.由于某种未知的原因NSURLConnection,无论我设置多短,我都永远不会失败timeoutInterval.
// Create the URL request
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]
initWithURL:[NSURL URLWithString:@"http://www.tumblr.com/api/write"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:0.00000001];
/* Populate the request, this part works fine */
[NSURLConnection connectionWithRequest:request delegate:self];
Run Code Online (Sandbox Code Playgroud)
我有一个断点,- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error但它永远不会被触发.我的图像继续张贴得很好,尽管很小,它们仍然出现在Tumblr上timeoutInterval.
我创建了一个iOS应用程序,并希望通过空中分发它.我按照这个指南:
http://help.apple.com/iosdeployment-apps/mac/1.1/?lang=en-us#app43ad77ea
该应用程序使用企业证书进行签名,并包含分发配置文件.
当我尝试将应用程序下载到ipad上时(使用本指南中描述的技术),屏幕上会出现一个带有我的下载图标的方形图标,名称为"等待...",然后一秒后名称变为我的实际的应用程序名称然后再一次我收到错误消息:
无法下载应用程序
目前无法下载"您的应用程序".
在指南中,有三个疑难解答提示:
如果无线应用程序分发因"无法下载"消息而失败,请检查以下内容:
确保应用程序已正确签名.通过使用iPhone配置实用程序或Apple Configurator将其安装在设备上进行测试,并查看是否发生任何错误.
确保清单文件的链接正确,并且Web用户可以访问清单文件.
确保.ipa文件的URL(在清单文件中)正确,并且Web用户可以访问.ipa文件.
我检查了所有三件事,他们没事.
还有什么可能导致我的下载问题?
目前我正在使用NSThread另一个线程缓存图像.
[NSThread detachNewThreadSelector:@selector(cacheImage:) toTarget:self withObject:image];
Run Code Online (Sandbox Code Playgroud)
交替:
[self performSelectorInBackground:@selector(cacheImage:) withObject:image];
Run Code Online (Sandbox Code Playgroud)
或者,我可以使用 NSOperationQueue
NSInvocationOperation *invOperation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(cacheImage:) object:image];
NSOperationQueue *opQueue = [[NSOperationQueue alloc] init];
[opQueue addOperation:invOperation];
Run Code Online (Sandbox Code Playgroud)
有没有理由改变NSThread?GCD是iPhone上发布的第四个选项,但除非有显着的性能提升,否则我宁愿坚持使用适用于大多数平台的方法.
根据@ Jon-Eric的建议,我选择了NSOperationQueue/ NSOperation子类解决方案.它工作得很好.该NSOperation班是足够灵活,你可以调用,块或定制子类使用它,这取决于你的需求.无论您如何创建自己,NSOperation都可以在准备运行时将其放入操作队列中.如果需要,这些操作可以作为您放入队列的对象,也可以作为独立的异步方法运行.由于您可以轻松地同步运行自定义操作方法,因此测试非常简单.
我在一些项目中使用了相同的技术,因为我问了这个问题,我对它保持我的代码和我的测试干净,有条理和快乐异步的方式感到高兴.
A +++++++++++++++++++++++++
我有一个基于标签栏的应用程序,有超过5个标签栏项目 - 所以我在视图中直接显示其中4个,其余可用选择"更多"标签.当按下标签栏项目时,我想检测它是哪一个.
所以,在
- (void)tabBarController:(UITabBarController *)tabBarCtrl didSelectViewController:(UIViewController *)viewController方法中,我tabBarCtrl.selectedViewController.title用来获取项目的标题.
这适用于视图中可见的选项卡 - 即第一个选项卡和"更多"选项卡 - 但不适用于按下"更多"选项卡后列表中显示的其他选项卡栏项目.
我可以看到,从"更多"列表中选择一个选项卡时,甚至都没有调用didSelectViewController方法.
如何在按下时检测到它们中的任何一个?
先感谢您.
ios ×4
iphone ×3
objective-c ×2
app-store ×1
bash ×1
cocoa-touch ×1
enterprise ×1
git ×1
github ×1
keyboard ×1
nsthread ×1
nsurlrequest ×1
over-the-air ×1
passwords ×1
security ×1
tabbar ×1
uikeyboard ×1
uitabbaritem ×1
uitextfield ×1
xcode ×1