我是xcode4的新手,当我想在xcode中删除文件时,我遇到了很多问题.从"移动到垃圾箱"和"删除参考"我应该选择哪一个.我总是选择移动到垃圾箱之前因为我认为它肯定会删除真实文件.是对的吗?他们之间有什么区别?
当我运行如下代码时:
- (void)viewDidLoad
{
#ifdef DEBUG
NSLog(@"debug");
#else
NSLog(@"here");
#endif
[super viewDidLoad];
}
Run Code Online (Sandbox Code Playgroud)
我看到日志中打印了"debug",但我没有DEBUG明确定义.它在哪里定义?
我是objective-c的新手,我知道基本的内存管理规则,比如何时retain release autorelease.但是我不知道什么时候应该将代码包装到自动释放池中?为什么?
由于缺乏材料dispatch_set_target_queue,我来这里寻求帮助,谢谢!
这是我的测试代码:
dispatch_queue_t mySerialDispatchQueue1 = dispatch_queue_create("come.itenyh", NULL);
dispatch_queue_t mySerialDispatchQueue2 = dispatch_queue_create("come.itenyh1", NULL);
dispatch_set_target_queue(mySerialDispatchQueue1, mySerialDispatchQueue2);
dispatch_async(mySerialDispatchQueue1, ^{[self task:@"s1"];});
dispatch_async(mySerialDispatchQueue2, ^{[self task:@"p1"];});
dispatch_async(mySerialDispatchQueue1, ^{[self task:@"s2"];});
- (void)task:(NSString *)taskid
{
NSLog(@"Now executing taskid:%@", taskid);
[NSThread sleepForTimeInterval:5];
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我设置
dispatch_set_target_queue(mySerialDispatchQueue2, mySerialDispatchQueue1);
Run Code Online (Sandbox Code Playgroud)
然后结果是:
2014-04-16 22:23:49.581 ITGCDLearning[66758:1303] Now executing taskid:s1
2014-04-16 22:23:54.585 ITGCDLearning[66758:1303] Now executing taskid:s2
2014-04-16 22:23:59.586 ITGCDLearning[66758:1303] Now executing taskid:p1
Run Code Online (Sandbox Code Playgroud)
而相反,如果我设定
dispatch_set_target_queue(mySerialDispatchQueue1, mySerialDispatchQueue2);
Run Code Online (Sandbox Code Playgroud)
然后结果是:
2014-04-16 22:28:37.910 ITGCDLearning[66795:1303] Now executing taskid:s1
2014-04-16 22:28:42.913 ITGCDLearning[66795:1303] Now executing taskid:p1
2014-04-16 22:28:47.915 ITGCDLearning[66795:1303] Now executing taskid:s2 …Run Code Online (Sandbox Code Playgroud) 如何将日期字符串"2012-05-03 06:03:00 +0000"转换为NSDate.我使用下面的代码,但它不起作用:
NSDateFormatter *datFormatter = [[NSDateFormatter alloc] init];
[datFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];
NSDate* date = [datFormatter dateFromString:dateStr];
Run Code Online (Sandbox Code Playgroud) 我想做的就像倾斜说的那样.原因是,我无法定制下面按钮的视图,因此我打算在此按钮上放置另一个按钮,可以由我自己定制.当我触摸上面的那个时,将触发下面的事件.
以下函数定义的第一行有问题:
void draw(id shapes[], int count)
{
for(int i = 0;i < count;i++) {
id shape = shapes[i];
[shape draw];
}
}
Run Code Online (Sandbox Code Playgroud)
编译失败,并显示错误"必须显式描述对象数组参数的预期所有权".
错误的确切原因是什么?我该如何解决?
当我尝试声明一个sqlite3对象时,我在下面的代码中遇到了编译错误."数据库"不是对象类型吗?为什么会发生这种情况,我该如何解决?
#import <Foundation/Foundation.h>
#import <sqlite3.h>
@interface BasicDao : NSObject
@property (nonatomic, retain) sqlite3 *database; //error : Property with 'retain (or strong)' attribute must be of object type
@end
Run Code Online (Sandbox Code Playgroud) 我正在使用ICarousel制作我的电子相册.滑动相册时,ICarousel的默认设置是它将移动到一定距离.我需要的是只滑动一次一张图片.我发现ICarousel不是基于ScrollView,所以我无法弄清楚如何实现我的目的,有人了解它吗?
这是我第一次总结我的应用程序.我从文档中知道应该指定启动图像,但是我创建了自己的启动视图(带有uilabel和uiimageview的viewcontroller)并且它工作得很好.但如果我不制作发射图像,我恐怕不被接受.有人可以给我一些建议吗?
objective-c ×7
iphone ×6
ios ×4
ipad ×2
autorelease ×1
filesystems ×1
icarousel ×1
macros ×1
nsdate ×1
sqlite ×1
uibutton ×1
xcode ×1
xcodeproj ×1