{
dispatch_queue_t myQueue = dispatch_queue_create("com.mycompany.myqueue", 0);
dispatch_sync(myQueue, ^{
//Do EXTREME PROCESSING!!!
for (int i = 0; i< 100; i++) {
[NSThread sleepForTimeInterval:.05];
NSLog(@"%i", i);
}
dispatch_sync(dispatch_get_main_queue(), ^{
[self updateLabelWhenBackgroundDone];
});
});
}
Run Code Online (Sandbox Code Playgroud)
我在这里遇到了僵局.根据Apple文档
"dispatch_sync":"将一个块提交给调度队列以进行同步执行.与dispatch_async不同,此函数在块完成之前不会返回.调用此函数并以当前队列为目标会导致死锁."
但是,我执行外部dispatch_sync操作myQueue,然后ditpatch_sync在不同的队列中执行内部操作,即`main_queue.
无法找出死锁的原因.任何评论/帮助在这里都很感激.
如果通过选择隐藏状态栏status bar style = hide during application launch,我正在自定义uinavigation栏,如下所示
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed: @"navbar-iphone.png"]
forBarMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)
当我得到这个:导航栏从顶部切断.

和

有关这种情况的任何想法以及如何解决它?
在Objective C中有两种方法可以创建NSString obj
方式1:
// string1 will be released automatically
NSString* string1 = [NSString string];
// must release this when done
Run Code Online (Sandbox Code Playgroud)
方式2
NSString* string2 = [[NSString alloc] init];
[string2 release];
Run Code Online (Sandbox Code Playgroud)
如果我做
NSString *string = @"This is a string";
Run Code Online (Sandbox Code Playgroud)
我的问题是上述声明属于哪种方式,我们应该放弃它
我使用关联的引用作为我的类别的属性的存储
头文件包含:
@interface UIImageView (Spinning)
@property (nonatomic, assign) BOOL animating;
@end
Run Code Online (Sandbox Code Playgroud)
实施是
- (void)setAnimating:(BOOL)value {
objc_setAssociatedObject(self, animatingKey, value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到了上面这一行的警告
Implicit conversion of 'BOOL' (aka 'signed char') to 'id' is disallowed with ARC
Run Code Online (Sandbox Code Playgroud)
如果你知道我在这里做错了什么,请帮助我们如何避免这个问题
我现在拥有的是
View :
1.UILabel : show a text
2.A GMGridView : show a grid of views
Run Code Online (Sandbox Code Playgroud)
代码是
- (void)viewDidLoad
{
[super viewDidLoad];
gridViewHolder.itemSpacing = SPACING;
gridViewHolder.dataSource = self;
gridViewHolder.actionDelegate = self;
}
#pragma mark - GMGridViewDataSource
- (CGSize)GMGridView:(GMGridView *)gridView sizeForItemsInInterfaceOrientation:(UIInterfaceOrientation)orientation {
return CGSizeMake(WIDTH, HEIGT);
}
- (NSInteger)numberOfItemsInGMGridView:(GMGridView *)gridView {
return [needs count];
}
- (GMGridViewCell *)GMGridView:(GMGridView *)gridView cellForItemAtIndex:(NSInteger)index {
cell = [gridView dequeueReusableCell];
CGSize size = [self GMGridView:gridViewHolder sizeForItemsInInterfaceOrientation:UIInterfaceOrientationPortrait];
if (!cell)
cell = [[GMGridViewCell alloc] init];
UIView *innerView = [[UIView …Run Code Online (Sandbox Code Playgroud) 为了绕过图像的角落,我正在做以下事情
UIImageView *myView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)];
[myView setImage:[UIImage imageNamed:@"xcode_57X57"]];
myView.layer.cornerRadius = 10.0;
myView.layer.borderWidth = 1.0;
myView.layer.borderColor = [UIColor blueColor].CGColor;
myView.layer.shadowRadius = 8;
Run Code Online (Sandbox Code Playgroud)
但是,我得到的是myView的角落是圆形但是图像的角落.下图显示了我的问题.
如果您之前遇到过这个问题,请就此向我提出建议.

我正在研究ZBarReader,到目前为止我所拥有的是
ZBarReaderViewController *controller = [[ZBarReaderViewController alloc] init];
controller.navigationController.navigationBarHidden = NO;
// Add Edit button to the right and handle click event UIBarButtonItem *manualButton = [[UIBarButtonItem alloc] initWithTitle:@"Manual" style:UIBarButtonItemStyleBordered target:self action:@selector(EditMode:)];
[controller.navigationItem setRightBarButtonItem:manualButton];
controller.readerDelegate = self;
[self presentModalViewController:controller animated:YES];
Run Code Online (Sandbox Code Playgroud)
我的问题是我们可以如此上面这样的事情:设置工具栏可见并在其上添加ZBarReaderViewController的按钮.
我的观点包含:
first name ( UITextField )
last name ( UITextField )
email ( UITextField )
note ( UITextView )
Run Code Online (Sandbox Code Playgroud)
图片如下

输入返回键时,以下代码用于处理
- (BOOL)textFieldShouldReturn:(UITextField *)textField { // invoked when user hits return of keyboard from a text field
if ( textField == self.firstName)
[self.lastName becomeFirstResponder];
else if (textField == self.lastName)
[self.email becomeFirstResponder];
else if (textField == self.email) {
[self.note becomeFirstResponder];
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
当我在email现场击中时next,我正在降落,note但是在第二行,如下(浅蓝色光标在第二行)
我不懂.光标应该在第一行note.
对这个问题有什么看法吗?
objective-c uitextfield uitextview uitextviewdelegate uitextfielddelegate
下面是使用nsarchive读取和写入数据的类
Data.m
-(id)init {
self = [super init];
if(self) {
arr = [[NSMutableArray alloc] init];
}
return self;
}
-(NSString *)getPath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPath;
if ([paths count] > 0)
documentPath = [paths objectAtIndex:0];
NSString *draftDataPath = [documentPath stringByAppendingPathComponent:@"draftData.dat"];
return draftDataPath;
}
-(void)saveDataToDisk {
NSString *path = [self getPath];
[NSKeyedArchiver archiveRootObject:arr toFile:path];
}
-(void)loadDataFromDisk {
NSString *path = [self getPath];
self.arr = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
}
Run Code Online (Sandbox Code Playgroud)
稍后,我arr通过CustomerClass.m 添加一些对象
- (void) viewDidLoad {
Data *data …Run Code Online (Sandbox Code Playgroud) 我正在CAShapeLayer使用 CAShapeLayer 创建一个图层,如下所示:
CAShapeLayer *shapeLayer = [CAShapeLayer layer];
shapeLayer.frame = CGRectMake(150, 50, 200, 200);
shapeLayer.fillColor = [UIColor whiteColor].CGColor;
shapeLayer.strokeColor = [UIColor orangeColor].CGColor;
[self.view.layer addSublayer:shapeLayer];
Run Code Online (Sandbox Code Playgroud)
但是,当我执行代码时,shapeLayer在模拟器/设备中看不到我的代码。
我在这里缺少什么。
PS:如果我使用CALayer *shapeLayer = [CALayer layer];它有效。困惑
我正在关注HeadsUpUI的教程
我只是想添加额外的功能,例如如果我从悬停点击播放或暂停按钮,我将移动到另一个名为NextViewController的视图控制器.
我做的是
1.-(IBAction)rightAction:(id)sender {
- //用户触摸了HoverView中的右键
- [self showHoverView:NO];
- NextViewController*controller = [[NextViewController alloc] initWithNibName:@"NextViewController"bundle:nil];
- [self.navigationController pushViewController:controller animated:YES]; }
点击暂停或播放按钮后,根本没有任何事情发生.但是,如果我替换第5行
[self presentModalViewController:controller animated:YES];
它的工作原理.
如果你知道问题是什么,有人可以建议我.欢迎任何评论.
我正在尝试使用GCD一个接一个地放置图像,如下所示
-(void)setUpImages {
NSArray *images = @[[UIImage imageNamed:@"blogger-icon.png"],
[UIImage imageNamed:@"gplus-icon.png"],
[UIImage imageNamed:@"facebok-icon.png"]
];
[images enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
dispatch_sync(dispatch_get_main_queue(), ^{
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(80, idx * ((UIImage*)obj).size.height + idx*30 + 10, ((UIImage*)obj).size.width, ((UIImage*)obj).size.height)];
NSLog(@"index is %@",NSStringFromCGRect(imageView.frame));
[imageView setImage:(UIImage*)obj];
[self.view.layer addSublayer:imageView.layer];
sleep(1);
});
}];
}
Run Code Online (Sandbox Code Playgroud)
我正在使用,dispatch_sync因为我希望它会等到它的块完成(第一个图像放在屏幕上)然后第二个图像将是,所以第三个图像.现在所有的事情都发生在主线上.
但是,似乎我在中间遇到了僵局,我的逻辑在某些方面是错误的.
我需要帮助来了解这种情况.请帮忙.
iphone ×7
objective-c ×7
ios ×5
calayer ×1
cashapelayer ×1
cocoa-touch ×1
gmgridview ×1
ios7 ×1
uitextfield ×1
uitextview ×1