首先,这个问题与使用核心数据的Xcode 4中的Graphical Predicate Builder密切相关.但是,我还没有足够高的评价来发表评论,而且由于我没有回答,我会问一个更具体细节的新问题.
我一直在这里撞墙,所以我要提供尽可能多的细节......
问题:Apple Core Data文档仍在引用Xcode 3,并为Fetched Properties和Fetch Request Templates 显示了一个高度复杂的图形谓词构建器.这包括以图形方式创建任意复杂度的复合谓词的能力,例如:

这显然是一个非常强大的工具,可以有效地使用Core Data,而且就我和其他人所知,这个功能要么丢失,要么被Xcode 4隐藏起来.
现在,基于上面链接的SO问题,我们至少知道在XCode 4中是否添加了获取请求:

随后,您可以在右侧窗格中访问一个非常基本的图形谓词编辑器:

但是这个图形编辑器没有提供苹果文档中指出的复杂复杂性(显然仍然与XCode 3相关).而且,正如另一个SO问题中所提到的,这仍然没有回答如何访问Fetched Properties的任何类型的图形谓词构建器的问题.
据我所知,如果你添加一个Fetched Property,它会出现在你的Core Data编辑器中,但无法访问谓词构建器.扩大:
在Xcode 3中,详细信息窗格提供了一个"编辑谓词"按钮,用于打开Predicate Builder:

以下是XCode 4中的可比较视图:

可以看出,没有"编辑谓词"按钮.
问题:
1)XCode 4中的所有这些功能在哪里?如上所示,到目前为止我唯一接近Predicate Builder的东西就是非常简单的Fetch Request编辑器,它没有提供我能够找到的复合/复杂谓词能力.
而且,我想在这里明确一点:除非我遗漏了一些明显的东西,否则当你创建一个获取请求时出现在XC4中的这个简单的FetchRequest编辑器不是这个问题的答案.它给你的唯一条件选项是选择以下[无/全部/任何]是否为真.这甚至没有接近XCode 3的Predicate Builder的功能,具有复杂的关系和可选的变量等.
2)同样的问题,也是特别针对Fetched Properties.
我的假设是Apple不仅仅删除了在XCode 4中以图形方式创建复杂复合谓词的功能,包括Fetched Properties和Fetch Request Templates.但是我在绳子的尽头想弄清楚它藏在哪里......
提前致谢.
这里非常简单的问题:for循环中的枚举顺序是否保证遵循NSArray目标的顺序(即从对象索引0开始并每次递增1)?
具体来说,以下代码片段中的枚举顺序是否保证从数组索引0开始并且每个循环递增1?(codesArray是NSArray)
for (NSNumber *num in codesArray) {
// do stuff //
}
Run Code Online (Sandbox Code Playgroud)
或者,如果我想保证枚举顺序,我必须做一个传统for的样式循环:
for (int i=0; i<[codesArray count]; i++) {
// do stuff //
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我通过属性字符串属性在故事板中设置UITextView文本的外观.但是,当我尝试在运行时访问它以复制属性对象时,它返回null.
NSAttributedString *atrString = self.contentTextView.attributedText;
NSLog(@"atrString = %@", atrString);
Run Code Online (Sandbox Code Playgroud)
输出
2013-09-20 14:44:19.572 PageTest[69125:70b] atrString = (null)
Run Code Online (Sandbox Code Playgroud)
我之前没有使用过属性字符串所以我确定我做错了什么,但是搜索文档仍然让我空洞.任何援助将不胜感激.谢谢!
我正在我的应用程序中实现MKStoreKit,但应用程序的性质使得它需要支持频繁,动态地更改可用(非消耗性)产品列表以供应用程序购买.因此,我需要能够定期向我们的服务器查询可用产品ID,描述等的当前列表.
据我所知,MKStoreKit仅支持可用产品的静态plist,这意味着我们每次需要更改IAP产品列表时都必须发布应用更新.正如我所提到的,这项服务无法实现.
有没有人知道通过使用MKStoreKit从服务器下载IAP产品列表来更新我们的IAP产品列表的方法,而无需更新应用程序.
如果没有,我必须想象那里有人修改了代码以支持这一点.如果是这样,任何提示和智慧将获得很多赞赏.
提前致谢.
我正在尝试淡入通过动画 Alpha 创建的 UIView。我需要将其淡入,让它可见几秒钟,然后淡出。
淡出功能效果很好。视线顺利消失。但淡入只是让视图立即出现,而不是在 0.5 秒的间隔内缓慢出现。
所以看起来动画的淡入淡出不起作用,只是立即将 alpha 设置为1.0。我在这里有点不知所措。有什么想法我做错了吗?谢谢!
-(void)presentPopupPhrase:(NSString *)phrase
inView:(UIView *)view
withDelegate:(id)delegate
andCompletion:(void (^)(BOOL completed))completion {
MessagePopupView *pv = [[[MessagePopupView alloc] initWithFrame:self.frame andText:phrase] autorelease];
pv.alpha = 0.0;
[view addSubview:pv];
[self fadeInMPV:pv
withDuration:self.fadeDuration
andDelay:self.fadeInDelay];
[self fadeOutMPV:pv
withDuration:self.fadeDuration
afterDelay:self.fadeOutDelay
withCompletion:completion
andDelegate:delegate];
}
-(void)fadeInMPV:(MessagePopupView *)mpv
withDuration:(NSTimeInterval)duration
andDelay:(NSTimeInterval)delay
{
[UIView animateWithDuration:duration
delay:delay
options:UIViewAnimationOptionCurveLinear
animations:^{
mpv.alpha = 1.0;
}
completion:nil];
}
-(void)fadeOutMPV:(MessagePopupView *)mpv
withDuration:(NSTimeInterval)duration
afterDelay:(NSTimeInterval)delay
withCompletion:(void (^)(BOOL completed))completion
andDelegate:(id)delegate
{
[UIView animateWithDuration:duration
delay:delay
options:UIViewAnimationOptionCurveLinear
animations:^{
mpv.alpha = 0.0;
}
completion:completion]; …Run Code Online (Sandbox Code Playgroud) 我需要一个存储的NSDate并可靠地确定它是否属于当前时刻的一小时,一天或一周.我似乎已经破解了一个解决方案,但之前没有解决过这个问题,我并不完全相信它是一个可靠的解决方案.
用户设置12对24小时时间是否会存活?日期格式指南表明此用户设置可能会导致一些意料之外的日期行为:"在iOS中,用户可以覆盖默认的AM/PM与24小时时间设置.这可能会导致NSDateFormatter重写您设置的格式字符串."
这个问题的基本代码模式怎么样?这段代码是否可靠地满足其目的?我讨厌发布一个"检查我的代码"的问题,但这对我来说是一个不熟悉的问题,并且非常难以严格测试,这似乎是合理的.NSDateFormatter对我来说也比较新; 这个问题的另一个动机.
注意:我紧张的主要原因是将日期转换为字符串然后进行字符串比较似乎是解决此问题的固有脆弱方法.但这是我能想到的最好的.
快速参考:dateFormat我在三个案例中使用的s是:
dateFormat = @"yyyyMMddHH"; // For "this hour" check
dateFormat = @"yyyyMMdd"; // For "today" check
dateFormat = @"yyyyww"; // For "this week" check
Run Code Online (Sandbox Code Playgroud)
谢谢!代码遵循:
- (BOOL)didThisCycle {
// Case 1: hourly; Case 2: daily; Case 3: weekly
BOOL did = NO;
NSDate *now = [NSDate date];
NSDate *lastDid = [self.didDates lastObject];
if (![lastDid isKindOfClass:[NSDate class]]) { // Crash protection
return NO;
}
int type = [self.goalType intValue];
switch (type) …Run Code Online (Sandbox Code Playgroud) 这个问题纯属好奇心.
在Xcode中,为什么这样做:
if (view.class == [UITextView class]) {
UITextView *tview = (UITextView *)view;
tview.textColor = [UIColor colorWithRed:0.020 green:0.549 blue:0.961 alpha:1.];
}
Run Code Online (Sandbox Code Playgroud)
但以下结果出现错误消息Property 'textColor' not found on object of type 'UIView *':
if (view.class == [UITextView class]) {
(UITextView *)view.textColor = [UIColor colorWithRed:0.020 green:0.549 blue:0.961 alpha:1.];
}
Run Code Online (Sandbox Code Playgroud)
直觉上,这些应该完成同样的事情.
但是如果我将括号中的内联强制转换为括号,它可以正常工作:
if (view.class == [UITextView class]) {
((UITextView *)view).textColor = [UIColor colorWithRed:0.020 green:0.549 blue:0.961 alpha:1.];
}
Run Code Online (Sandbox Code Playgroud)
我怀疑它只与C处理操作顺序有关,但我很想听听解释.谢谢!
我正在编写一个查询我的数据库的函数,如果mysql查询出于某种原因出错,我希望我的函数返回一个值(在这种情况下为-1)表示查询失败,而不是死于整体脚本.
通常我只使用这个结构:
$result = mysql_query($sql) or die( [some error information] );
但在这种情况下,我不想死,但我确实需要打破这个功能,并有一些方法告诉调用函数出错了什么,同时仍然能够手动检查日志的源代码错误.有没有办法做到这一点?半伪代码看起来像:
$result = mysql_query($sql) or {
error_log( [some error information] );
return -1;
}
Run Code Online (Sandbox Code Playgroud)
但是我已经尝试了几种变体,并且(正如人们所预料的那样)它们不起作用.
有什么建议?谢谢.
ios ×5
objective-c ×4
iphone ×2
xcode4 ×2
animation ×1
cocoa-touch ×1
core-data ×1
mkstorekit ×1
mysql ×1
nsarray ×1
nsdate ×1
php ×1
uitextview ×1
uiview ×1
xcode ×1