我需要使用字典中的键控对象对nsdictionaries的nsmutablearray进行排序.该对象是NSNumber.如何在第一个对象为最高nsnumber的情况下对nsmutablearray中的字典进行排序?
谢谢!
我有一个浮点数,我试图得到一个介于1.5 - 2之间的随机数.我在网上看过教程,但是在我的情况下,所有这些都是0到数字而不是1.5的随机化.我知道这是可能的,但我一直在摸索如何实现这一目标.谁能帮我?
Edit1:我在网上找到了以下方法,但我不想要所有这些小数位.我只想要5.2或7.4之类的东西......
我该如何调整这种方法来做到这一点?
-(float)randomFloatBetween:(float)num1 andLargerFloat:(float)num2
{
int startVal = num1*10000;
int endVal = num2*10000;
int randomValue = startVal + (arc4random() % (endVal - startVal));
float a = randomValue;
return (a / 10000.0);
}
Run Code Online (Sandbox Code Playgroud)
Edit2:好的,现在我的方法是这样的:
-(float)randomFloatBetween:(float)num1 andLargerFloat:(float)num2
{
float range = num2 - num1;
float val = ((float)arc4random() / ARC4RANDOM_MAX) * range + num1;
return val;
}
Run Code Online (Sandbox Code Playgroud)
这会产生像1.624566等数字吗?因为我只想说1.5,1.6,1.7,1.8,1.9和2.0.
我有一个充满不同类型对象的NSArray.让我们说一个是NSDictionary,另一个是NSData.我如何从这个数组中随机选择一个对象,然后检查它是什么类型的对象.所以如果它是一个NSDictionary,我会做方法A.或者如果它是NSData,我会做方法B.
我怎么把它放到代码中?
谢谢!
我试图只在我的UITableView的顶角添加圆角,但问题是,使用下面的代码,它只是在我的整个UITableView上形成一个黑色层.我该如何解决这个问题?
//Rounded Corners for top corners of UITableView
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:thetableView.bounds
byRoundingCorners:UIRectCornerTopLeft
cornerRadii:CGSizeMake(10.0, 10.0)];
UIBezierPath *maskPath2 = [UIBezierPath bezierPathWithRoundedRect:thetableView.bounds
byRoundingCorners:UIRectCornerTopRight
cornerRadii:CGSizeMake(10.0, 10.0)];
// Create the shape layer and set its path
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = thetableView.bounds;
maskLayer.path = maskPath.CGPath;
CAShapeLayer *maskLayer2 = [CAShapeLayer layer];
maskLayer.frame = thetableView.bounds;
maskLayer.path = maskPath2.CGPath;
// Set the newly created shape layer as the mask for the image view's layer
[thetableView.layer addSublayer:maskLayer];
[thetableView.layer addSublayer:maskLayer2];
Run Code Online (Sandbox Code Playgroud) 我目前有一种方法试图获得我提供的两个数字之间的随机浮点数,但是它无法正常工作.
例如,如果我将4.0作为较低浮点数并且4.5作为较高浮点数输入,则得到的结果类似于0.8或1.2,有时它在这两个数字之间.所以这让我相信这种方法并不好.这是方法:
- (float)randomFloatBetween:(float)num1 andLargerFloat:(float)num2 {
return ((float)arc4random() / ARC4RANDOM_MAX) * num2-num1 + num1;
}
Run Code Online (Sandbox Code Playgroud)
这是ARC4RANDOM_MAX
#define ARC4RANDOM_MAX 0x100000000
Run Code Online (Sandbox Code Playgroud)
无论如何,造成这种情况的原因是什么?如何解决这个问题?
谢谢!
我正在创建一个NSCell子类,它将一些对象直接绘制到视图上(使用drawInRect:fromRect:operation:fraction:respectFlipped:hints:),并且还NSButton使用NSView的addSubview:选择器绘制一个实例.
虽然使用第一种方法绘制的对象都是相关的,但是我在绘制NSButton正确的方法时遇到了问题.问题是我的NSButton实例会在正确的位置绘制,但多次覆盖.
我已经在互联网上研究了一段时间,有些人建议使用缓存,但我不确定这是否有效.(使用for循环包含按钮的数组肯定会导致慢滚动,因为我显示了大量数据...)
你会怎么做?我吠叫错了树吗?
这是相关代码:
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
NSRect _controlRect = cellFrame;
float _Y = cellFrame.origin.y;
NSRect _accessoryRect = NSMakeRect(_controlRect.size.width - 70.0f, _Y + 9.0f, 50.0f, 23.0f);
_switch = [self _choiceSwitch];
[_switch setFrame:_accessoryRect];
[controlView addSubview:_switch];
}
Run Code Online (Sandbox Code Playgroud) 目前我这样做是为了获得我的UITextView的背景图片:
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, textView.frame.size.width, textView.frame.size.height)];
imgView.image = [UIImage imageNamed:@"background.png"];
[textView addSubview: imgView];
[textView sendSubviewToBack: imgView];
[imgView release];
Run Code Online (Sandbox Code Playgroud)
但问题是,它不重复.我想要的是每个UIImage后重复的图像.
这可能吗?
谢谢!
我在我的应用程序中使用Objective-C,我对@interface声明中的多重继承有疑问.
这就是我现在看起来的样子:
#import "cocos2d.h"
@interface UIViewController (Save)
- (void)saveImage:(UIImage*)image:(NSString*)imageName;
- (void)removeImage:(NSString*)fileName;
- (UIImage*)loadImage:(NSString*)imageName;
@end
@interface CCLayer (Save)
- (UIImage*)loadImage:(NSString*)imageName;
- (BOOL)checkExists:(NSString*)thePath;
@end
Run Code Online (Sandbox Code Playgroud)
所以你可以看到,我已经两次声明了loadImage方法.我不想这样做.这也意味着我必须在我的.m中使用相同的代码两次.
有没有办法将UIViewController和CCLayer混合到1 @interface中,这样我就不必多次声明它了?
谢谢!
我知道可以使用ALAssetsLibrary获取Photos.app中的图像,但如何获取Photos.app中的照片总数?
我正在尝试检查照片的数量,因为我正在使用此问题的代码获取Photos.app中的最后一张图片:从Photos.app获取最后一张图片?
因此,如果设备上有0个图像,它将不会执行上面链接中的代码.
无论如何我怎么能得到这个?
谢谢!
在我的项目中的第三方库中,单例sharedInstance方法似乎在最终的return_sharedInstance行中抛出了一个分析器警告:
+ (BlockBackground*)sharedInstance
{
if (_sharedInstance != nil) {
return _sharedInstance;
}
@synchronized(self) {
if (_sharedInstance == nil) {
[[[self alloc] init] autorelease];
}
}
return _sharedInstance;
}
Run Code Online (Sandbox Code Playgroud)
无论如何,实际修复此警告的正确方法是什么?另外我已经看到你不应该在这样的方法中做自我分配,这是真的吗?
谢谢!
ios ×8
objective-c ×3
arrays ×2
random ×2
analyzer ×1
calayer ×1
image ×1
inheritance ×1
interface ×1
memory-leaks ×1
nscell ×1
nstableview ×1
numbers ×1
object ×1
photos ×1
singleton ×1
sorting ×1
uiimageview ×1
uitableview ×1
uitextview ×1
xcode ×1