小编Vik*_*ica的帖子

如何将十六进制转换为RGB

我想从十六进制转换为RGB,但十六进制处理像#FFFFFF这样的字符串.我怎样才能做到这一点?

rgb hex cocoa-touch objective-c ios

28
推荐指数
3
解决办法
2万
查看次数

iOS:比较两个没有时间部分的NSDate-s

我想比较两个日期:date1和date2

2011-06-06 12:59:48.994 Project[419:707] firstDate:2011-06-06 10:59:21 +0000
2011-06-06 12:59:49.004 Project[419:707] selectedData:2011-06-06 10:59:17 +0000
Run Code Online (Sandbox Code Playgroud)

但这些日期有不同的时间,当我使用NSOrderedSame它不能正常工作,我该如何解决?

我的代码:

NSDate *firstDate = [[appDelegate.project objectAtIndex:i]objectAtIndex:3];
NSDate *secondDate = [[appDelegate.project objectAtIndex:i]objectAtIndex:4];

NSCalendar *calendar = [NSCalendar currentCalendar];
NSInteger comps = (NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit);

NSDateComponents *date1Components = [calendar components:comps 
                                                            fromDate:firstDate];
NSDateComponents *date2Components = [calendar components:comps 
                                                            fromDate:secondDate];
NSDateComponents *date3Components = [calendar components:comps fromDate:appDelegate.selectedDate];

NSLog(@"firstDate:%@", [date1Components date]);
NSLog(@"secondDate:%@", [date2Components date]);
NSLog(@"selectedData:%@", [date3Components date]);

NSComparisonResult compareStart = [[date1Components date] compare: [date3Components date]]; 
NSComparisonResult compareEnd = [[date2Components date] compare: [date3Components …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch objective-c nsdate ios

27
推荐指数
3
解决办法
2万
查看次数

如何通过NSLog打印变量的值?

一个非常基本的问题,我最近开始探索Objective C并试图弄乱一个示例代码.但是出于调试目的,我希望在控制台上打印NSString变量值.我该如何实现这一目标?

基本上我是一个java开发人员,所以我看起来像...

String hello = "world!";
System.out.println(hello);
Run Code Online (Sandbox Code Playgroud)

我的外语变量(Obj-C)是......

NSString *hello = ...calling a method to return string...
Run Code Online (Sandbox Code Playgroud)

任何提示将不胜感激!

谢谢

cocoa-touch objective-c ios

26
推荐指数
2
解决办法
4万
查看次数

UIDocumentInteractionController将自定义操作添加到菜单(例如电子邮件,保存到照片)

我已经开始使用UIDocumentInteractionController为一个新的应用程序,但我想知道如何添加其他操作到您在预览屏幕上获得的操作菜单?

似乎菜单只列出已注册给定网址类型的应用程序,而且我看到PRINT出现在iOS4.2上.我想通过电子邮件添加发送并保存到照片,但没有看到扩展此菜单的方法.我可以编写我想要的动作,它只是将它们添加到菜单中似乎不可能吗?

我错过了一些明显的东西吗

cocoa-touch menu objective-c ios uidocumentinteraction

25
推荐指数
1
解决办法
7434
查看次数

iOS - 合并两个不同大小的图像

我面临以下问题:由于合并,我必须合并两个图像A和B以创建新图像C.
我已经知道如何合并两个图像但在这种情况下我的目标有点不同.
我想图像A将是图像B的背景.
例如,如果图像A尺寸是500x500而图像B尺寸是460x460,我希望图像C(合并的图像结果)将是500x500,图像B( 460x460)以它为中心.

预先感谢您的任何帮助或建议

merge cocoa-touch objective-c uiimage ios

25
推荐指数
3
解决办法
3万
查看次数

如何在目标c中实施私人和公共成员?

我有一些关于在工作中使用属性和实例变量的讨论,因此我想找到一个wiki的答案.现在,我知道在objective-c中没有真正的私有成员类型,一切都是公开的.但是,我有点担心我们应该如何设计我们的类以及遵守OOP原则.我想听听这三种设计方法的意见:

A.根据各种帖子甚至是新的斯坦福大学iPhone开发课程,你应该随时随地使用属性.然而恕我直言,这种方法制定了OOP设计原则,因为在这种情况下,所有成员都会公开.为什么我需要将所有内部/本地实例变量发布到外部?此外,如果您通过属性使用合成设置器,而不是直接使用本地ivar,则会有一些(但仍然)开销很小.这是一个示例:

//==== header file =====//
@interface MyClass : NSObject

@property (nonatomic, retain) NSString *publicMemberWithProperty;
@property (nonatomic, retain) NSString *propertyForPrivateMember;

@end
Run Code Online (Sandbox Code Playgroud)

B.另一种方法是在声明头文件的ivars(不宣相关性质)为私有成员,并且以相同的头文件,申报纯特性(不宣相对的ivars)为公众成员.在这种情况下,ivars将直接在课堂上使用.这种方法很有意义但不会使用属性的所有好处,因为我们在设置新值之前手动释放旧值.这是一个示例:

//==== header file =====//
@interface MyClass : NSObject{
  NSString *_privateMember;
}

@property (nonatomic, retain) NSString *publicMemberWithProperty;

@end
Run Code Online (Sandbox Code Playgroud)

C.在头文件中为公共成员声明纯属性(不声明相对的ivars),并在实现文件的私有接口中为私有成员声明纯属性(不声明相对的ivars).这种方法恕我直言比第一种更明确,但同样的问题仍然存在:为什么我们必须拥有内部/本地成员的财产?这是一个示例:

//==== header file =====//
@interface MyClass : NSObject

@property (nonatomic, retain) NSString *publicMemberWithProperty;

@end

//==== implementation file =====//
@interface MyClass()

@property (nonatomic, retain) NSString *propertyForPrivateMember;

@end
Run Code Online (Sandbox Code Playgroud)

这个决定的自由让我感到很恼火,我想从各自的消息来源中找到关于应该如何做的确认.但是,我无法在Apple文档中找到这样严格的声明,所以请发布一个链接到Apple docs(如果有的话),或者发布任何其他清除它的理论.

oop cocoa-touch properties objective-c ios

23
推荐指数
1
解决办法
2万
查看次数

iOS 7中导航栏的默认背景颜色是什么?

我想将菜单的背景颜色设置为导航栏的背景颜色.做这个的最好方式是什么?

cocoa-touch uinavigationbar ios ios7

22
推荐指数
2
解决办法
2万
查看次数

设置uilabel的最大行数

我需要与uilabel做一些特殊的调整.

我希望它有1到3行,无论它有什么内容.目前我正在做这样的事情

label.font = [UIFont fontWithName:@"HelveticaNeue-Bold" size:14.0f];
label.backgroundColor = [UIColor clearColor];
label.numberOfLines = 0;
label.lineBreakMode = UILineBreakModeWordWrap;

label.frame = CGRectMake(114.0f, 88.0f, 187.0f, 0.0f);
[label sizeToFit];
Run Code Online (Sandbox Code Playgroud)

如果文字不太长,那么效果很好.如果字符串类似于@"Hello World"UILabel只有14点高,如果它有点长,它会扩展.

现在我希望文本应该添加它的默认...三点,如果文本对于三行太长,但设置在顶部它扩展到第四行.

有人知道如何实现这一目标吗?

如果不清楚,请发表评论.

编辑:
查看此示例应用程序以查看我的问题(希望如此).

iphone cocoa-touch objective-c

21
推荐指数
2
解决办法
2万
查看次数

iOS核心图形:仅绘制CGPath的阴影

我在iOS 5中使用Core Graphics绘制了一个简单的路径:

CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(   path, NULL, center.x   , topMargin   );
CGPathAddLineToPoint(path, NULL, center.x+20, topMargin+50);
CGPathAddLineToPoint(path, NULL, center.x   , topMargin+40);
CGPathAddLineToPoint(path, NULL, center.x-20, topMargin+50);
CGPathAddLineToPoint(path, NULL, center.x   , topMargin   );
Run Code Online (Sandbox Code Playgroud)

现在我想填写Overlay模式,如下所示:

[[UIColor colorWithRed:0 green:0 blue:0 alpha:0.4] setFill];
CGContextAddPath(context, path);
CGContextSetBlendMode (context, kCGBlendModeOverlay);
CGContextFillPath(context);
Run Code Online (Sandbox Code Playgroud)

这给了我完全预期的结果.但接下来,我想创造一个浮雕效果.我想过使用白色和黑色阴影来实现这样的效果:

[[UIColor colorWithRed:0 green:0 blue:0 alpha:0] setFill];
CGContextAddPath(context, path);
CGContextSetShadowWithColor(context, CGSizeMake(1, 1), 1.0, highlightColor);
CGContextSetBlendMode (context, kCGBlendModeNormal);
CGContextFillPath(context);

[[UIColor colorWithRed:0 green:0 blue:0 alpha:0] setFill];
CGContextAddPath(context, path);
CGContextSetShadowWithColor(context, CGSizeMake(-1, -1), 1.0, shadowColor);
CGContextSetBlendMode (context, kCGBlendModeNormal); …
Run Code Online (Sandbox Code Playgroud)

core-graphics objective-c shadow cgpath ios

20
推荐指数
1
解决办法
7393
查看次数

减少iOS应用程序中的内存使用量而不会泄漏

我的iOS应用程序具有高内存使用率但没有内存泄漏.如何减少内存使用量.

使用Instruments,我发现我的应用程序最大输出为90MB,在发生内存警告之前,其他内存被释放,然后在其余部分使用时保持在55-65MB左右.

我觉得55-65MB太高了吧?

因为,仪器没有发现任何泄漏.我该怎么做才能减少内存使用量?

我浏览了今年的WWDC视频,但是我理解的东西(这是我的第一个iOS应用程序),它主要涉及泄漏问题.

一些可能有用的信息:

VM:ImageIO_GIF_Data 30.35MB Live Bytes | 115生活| 300瞬态| 136.12 MB总字节数

VM:MappedFile 36.04 MB Live Bytes | 16生活| 11瞬态| 36.09 MB总字节数

所有其他的东西都在1MB以下

我的应用程序从互联网下载大约30个GIF文件,我使用SDWebImage,我只保存图像的URL,SDWebImage完成剩下的工作.:P

提前致谢,

来自iOS内存管理第一计时器


这是Instruments向我展示的截图

再次感谢您的帮助

cocoa-touch objective-c instruments ios automatic-ref-counting

20
推荐指数
1
解决办法
1万
查看次数