我正在尝试通过userInfo传递数据以进行NSTimer调用.做这个的最好方式是什么?我正在尝试使用NSDictionary,当我有Objective-C对象时,这很简单,但其他数据呢?我想做这样的事情,它不能正常工作:
- (void)play:(SystemSoundID)sound target:(id)target callbackSelector:(SEL)selector
{
NSLog(@"pause ipod");
[iPodController pause];
theSound = sound;
NSMutableDictionary *cb = [[NSMutableDictionary alloc] init];
[cb setObject:(id)&sound forKey:@"sound"];
[cb setObject:target forKey:@"target"];
[cb setObject:(id)&selector forKey:@"selector"];
[NSTimer scheduledTimerWithTimeInterval:0
target:self
selector:@selector(notifyPause1:)
userInfo:(id)cb
repeats:NO];
}
Run Code Online (Sandbox Code Playgroud) 我试图绕过一个日期验证,拒绝接受明天之前的任何事情.
到目前为止我有这个:
NSDate *dateY = [NSDate dateWithTimeIntervalSinceNow:-86400];
// Negative one day, in seconds (-60*60*24)
NSLog(@"%@", [NSDate date]);
// "yyyy-MM-dd HH:mm:ss Z", accurate assuming Z = +0000
NSLog(@"%@", dateY);
// "yyyy-MM-dd HH:mm:ss Z", same accuracy (minus one day)
Run Code Online (Sandbox Code Playgroud)
这很好,但dateY不是NSNumber.我需要一个NSNumber比较,但我找不到任何有用的东西.(我甚至不知道怎么的NSNumber可以2011-04-14 13:22:29 +0000,反正...)
我可以NSDateFormatter用来将一个转换NSDate为一个NSString,所以如果有可能取出那个字符串并将其转换为所需的NSNumber(而不是直接转换NSDate为一个NSNumber,我似乎无法找到帮助),那就是没事的.
- (BOOL)validateDueDate:(id *)ioValue error:(NSError **)outError {
NSDate *dateY = [NSDate dateWithTimeIntervalSinceNow:-86400];
NSNumber *tis1970 = [NSNumber numberWithDouble:[dateY timeIntervalSince1970]]; …Run Code Online (Sandbox Code Playgroud) 从这样开始,我喜欢:

但后来我添加了一个段,这发生了:
宽度在IB中设置,而不是在代码中.
我只需要一种动态计算宽度的方法.最后,它会做这样的事情:
control.width = (labelWidths + marginWidths);
// where marginWidths = (marginWidth * control.numberOfSegments)
Run Code Online (Sandbox Code Playgroud) 我看了一下Apple的AddMusic示例代码,但这不是我想要的.我正试图找到一种方法来启动/停止在iPod应用程序中播放音乐,而不是控制应用程序沙箱中包含的内容.
像这样......
____________
| |
| |< || >| | skip back, play/pause, skip forward
| |
| XXXXXXXX | album art
| XXXXXXXX |
| XXXXXXXX |
| XXXXXXXX |
| |
|____________|
Run Code Online (Sandbox Code Playgroud)
当然应用程序比这更复杂,但是现在,我想专注于假设直接控制.
奖励指向任何获取参考而不作弊的人.
- 图稿加载错误转移到一个新问题.
- 文本到语音的实现转移到了一个新问题.
- 歌曲开始后,进度条的填充率为100%.此代码有效:
// your must register for notifications to use them
- (void)handleNowPlayingItemChanged:(id)notification {
…
// this is what I forgot to do
NSNumber *duration = [item valueForProperty:MPMediaItemPropertyPlaybackDuration];
float totalTime …Run Code Online (Sandbox Code Playgroud) 我对此感到很沮丧.使用storyboard,我创建了一个带有静态单元格的表格视图控制器,该静态单元格包含允许用户输入的UITextField.用户完成后,我想检索文本字段的内容.
这是我做的:
UITableViewCellnamed 的子类SingleLineFieldTableViewCellIBOutlet UITextField *textField;到子类并将其声明为属性(非原子,保留)并合成它.添加IBOutlet SingleLineFieldTableViewCell *cellNamed;到拥有表视图控制器,并将其声明为属性(非原子,保留)并合成它.
在storyboard中,我有一个带有静态单元格的表视图控制器.其中一个单元格是自定义单元格,它被声明为SingleLineFieldTableViewCell拥有一个UITextField.它还被分配了一个小区标识符.
当我跑,dequeueReusableCellWithIdentifier回来nil.我认为使用Xcode 4和故事板,dequeueReusableCellWithIdentifier根据转换为故事板发行说明,"该dequeueReusableCellWithIdentifier:方法保证返回一个单元格(假设您已经定义了具有给定标识符的单元格)".
奇怪的是,当我在Simulatior中运行时,表格按预期显示(部分,单元格大小等),除了我无法编辑自定义单元格.
我不知所措.任何帮助或想法?
- 约翰
是的,我已经找到了答案.除了没有提供淡入淡出过渡选项,只有翻转或卷曲的解决方案之外,这些解决方案都不起作用.
像这样:
methodname
configure animation
[self.navigationController popViewControllerAnimated:NO];
Run Code Online (Sandbox Code Playgroud)
无论我尝试什么样的过渡动画配置,没有什么明显不同于仅使用典型的单行流行音乐.如果我改成它…Animated:YES];,我会得到标准的流行动画,也许是从破坏的配置中发生了一些奇怪的事情.
所以我的问题是这样的:pop如果不是CrossDissolve,那我怎么能用,然后至少看起来相同的东西呢?甚至可以使用导航控制器吗?
使用模态视图将具有我想要的默认动画,并且我可以轻松地管理视图堆栈,但我不想这样做.
实现与AppleScript类似的东西有多难say "words"?
也就是说,它只是一个二进制链接和一个导入,还是一个像libxml实现一样凌乱的东西?
编辑:我的回答解决了这个问题.
我不能让这个工作.如果我删除主UITableView以使用静态单元格我可以使segue工作,这样当你点击master中的一行时它会自动按下Child控制器.但是使用"动态原型"单元格,我点击其中一个单元格,没有任何反应......
我应该以编程方式在子prepareForSegue方法中推送子控制器吗?在这种情况下,我不确定这里的segue对于刚刚使用的旧方式有什么好处
...
SecondViewController *svc = [SecondViewController new];
[self presentViewController:svc animated:YES completion:NULL];
}
Run Code Online (Sandbox Code Playgroud)
这段代码与我在另一个应用程序中使用的代码完全相同,但在这里我使用presentViewController而不是presentModalViewController
(completion:NULL使它们实际上相同.至少相同的结果.)
创建模态视图的两种尝试都以相同的方式构建.主视图中的那些行,Storyboard中的视图控制器以及匹配.h和.m文件.唯一的区别是,在这里我想要一个程序化的触发器,因此不可能拖动一个segue并完成它.
我有一个对象设置来识别手势并调用转换方法.这可能是造成问题的原因(至少是其中的一部分),但这是必要的.
使用UIButton会作弊.没有截止日期,没有捷径.
编辑: NSLog输出显示奇怪的东西.
2012-04-05 10:41:12.047 MyApp[5962:707] <SecondViewController: 0x1d8c130>
2012-04-05 10:41:12.479 MyApp[5962:707] <SecondViewController: 0x1d8e360>
所以我再做一些愚蠢的事情,碰巧有一个非常简单的修复,对吧?
再次编辑:presentViewController…不止一次被调用.固定它.不过还是黑的.
回到performSegueWithIdentifier:sender:而不是更容易presentViewController:animated:completion:
由于未捕获的异常"NSInvalidArgumentException"而终止应用程序,原因:'Receiver ...没有带标识符的segue ......'
我告诉它要执行一个segue,但是在Storyboard中没有一个(我不能添加一个,'Connections inspector'下面没有Storyboard Segues部分,我试图使用的对象),所以它崩溃了.这是正常行为.
我想要的是有一个模态视图而不需要创建一个segue.我已经完成了,所以我知道这是可能的.
我所需要的只是帮助它发挥作用.
.
performSegueWithIdentifier:@"Identifier" sender:nil NSSInvalidArgumentException
presentViewController:viewController animated:YES completion:NULL 空视图
我正在尝试使用XML(专业iPhone和iPad数据库应用程序编程中的第10章),我遇到了一些麻烦.
在Header Search Paths在Build Settings我有这样的路径:
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/include/libxml2/
这一切都很好,但随后:
#import <libxml/parser.h>
#import <libxml/tree.h>
error: libxml/parser.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
如果我翻转进口:
#import <libxml/tree.h>
#import <libxml/parser.h>
error: libxml/tree.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
奇怪的.
现在我有这个:
#import <libxml/catalog.h> // Dirty hack
#import <libxml/parser.h>
#import <libxml/tree.h>
error: libxml/catalog.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
但这对于生产应用来说并不好.
objective-c ×7
xcode ×6
iphone ×5
ios ×3
storyboard ×2
animation ×1
cocoa-touch ×1
ipod ×1
media-player ×1
nsdate ×1
nsnumber ×1
nstimer ×1
transition ×1
uitableview ×1
width ×1
xcode4.2 ×1
xml ×1