我已将此类别添加到NSDate:
- (bool)isWeekend
{
NSString* s = [self asString:@"e"];
if ([s isEqual:@"6"])
return YES;
else if ([s isEqual:@"7"])
return YES;
else
return NO;
}
Run Code Online (Sandbox Code Playgroud)
辅助功能:
- (NSString*)asString:(NSString*)format
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:format];
NSString *formattedDateString = [dateFormatter stringFromDate:self];
[dateFormatter release];
return formattedDateString;
}
Run Code Online (Sandbox Code Playgroud)
isWeekend
如果是星期六或星期日,应该返回YES.但如果当地的星期日有一个星期的开始,它就不起作用,在这种情况下,星期五将是第6天,星期六将是第7天.
我怎么解决这个问题?
我在我的项目中使用MagicalRecord.到目前为止,它一直在使用SQLite商店.但现在我正在尝试"升级"到iCloud以在我的iPhone和iPad版本之间进行同步.
但它没有像我预期的那样工作.该应用程序仍然工作相同 - 数据被保存和回读,但它没有像我期望的那样保存在iCloud中.
我所做的唯一改变是在MagicalRecord设置中.
之前:
[MagicalRecordHelpers setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"hdhomerun.sqlite"];
Run Code Online (Sandbox Code Playgroud)
后:
[MagicalRecordHelpers setupCoreDataStackWithiCloudContainer:@"AAAAAAAAAA.com.unpaq.hdhomerun" localStoreNamed:@"hdhomerun_local"];
Run Code Online (Sandbox Code Playgroud)
AAAAA在代码中不是AAAAA,而是来自开发者档案的私人ID.
我可以在输出日志中看到检测到iCloud并且没有发生错误.我也试过单步执行代码,一切看起来都很好.
我错过了什么?我需要听一些活动吗?我无法找到如何将MagicalRecord与iCloud一起使用的示例.
MagicalRecord的版本就是这个版本:https:
//github.com/magicalpanda/MagicalRecord
我想创建一个pin-code对话框,就像你可以在iPhone上打开一样.
对于那些没有看过它的人,它由四个盒子和一个数字键盘组成.输入数字时,第一个框中会出现一个点.等等.当您点击删除按钮时,最后一个点被删除.
我把它设置为四个UITextFields,在我的代表中我听:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
[self performSelector:@selector(pickNext:) withObject:textField afterDelay:0.0];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
pickNext:方法将切换到下一个UITextField,如下所示:
- (void)pickNext:(UITextField*)textField
{
switch ([textField tag]) {
case 1:
[pin2 becomeFirstResponder];
break;
case 2:
[pin3 becomeFirstResponder];
break;
case 3:
[pin4 becomeFirstResponder];
break;
case 4:
[textField resignFirstResponder];
break;
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
这实际上有效,但问题是当UITextField已经为空时,删除键不会产生任何通知.所以我无法移动到之前的UITextField.
那么有没有人更好地解决如何解决这个问题.我在想隐藏的文本字段......?
我正在努力解决我的GCD代码中的死锁问题.然后我dispatch_debug
在头文件中看到了这个函数<dispatch/object.h>
.
/*!
* @function dispatch_debug
*
* @abstract
* Programmatically log debug information about a dispatch object.
*
* @param object
* The object to introspect.
*
* @param message
* The message to log above and beyond the introspection.
*/
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_4_0)
DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_NOTHROW __attribute__((__format__(printf,2,3)))
void
dispatch_debug(dispatch_object_t object, const char *message, ...);
Run Code Online (Sandbox Code Playgroud)
但我无法做任何事情.我希望它会打印出状态并锁定或类似的东西.
这是我如何使用它:
grabber_queue = dispatch_queue_create("com.unpaq.tvguideplus.grabber", NULL);
dispatch_debug(grabber_queue, "grabber queue");
Run Code Online (Sandbox Code Playgroud)