这是我的'tick'功能:
- (void) tick: (ccTime) dt
{
NSLog(@"%d",ticker);
if(fbut.Adown == YES && ticker > 4)//fbut is a button
{
elayer = [[effectsLayer alloc] init]; // each effectlayer draws a //projectile that moves forward 'x' ticks
elayer.e_playpos = glayer.playerpos; // player position
[self addChild:elayer z:2];
[mutable addObject: elayer];
[elayer release];
if(mutable.count > 20) // when there are 20 projectiles drawn, start //destroying the last one.
{
NSLog(@"mutable: %d", mutable.count);
[mutable removeLastObject];
}
ticker=0;
}
ticker++;
// . . .
Run Code Online (Sandbox Code Playgroud)
这就是运行程序的样子
我最近遇到了一个问题.这是事情,我正在尝试从NSArray获取一个浮动对象来保存它,而我所能得到的只是(null).显然不是我想要收到的东西.看一下代码片段:
h = [[NSMutableArray alloc] initWithObjects:[NSNumber numberWithFloat:1.0],[NSNumber numberWithFloat:1.0],[NSNumber numberWithFloat:1.0], nil];
x = [[NSMutableArray alloc] initWithObjects:[NSNumber numberWithFloat:1.0],[NSNumber numberWithFloat:2.0], nil];
y = [[NSMutableArray alloc] init];
int step = 15; // That is just a random value, will depend on size of h and x.
for (int i = 0; i < step; ++i) {
NSLog(@"step = %i", i);
NSMutableArray *xTemp = [[NSMutableArray alloc] initWithArray:x];
NSMutableArray *hTemp = [[NSMutableArray alloc] initWithArray:h];
for (int j = 0; j < 3; ++j) {
float xToMul …Run Code Online (Sandbox Code Playgroud) 我有以下通常包含CGColor的数组:
_strokeColors = [[NSArray alloc] initWithObjects:NULL,NULL,NULL,NULL, nil];
Run Code Online (Sandbox Code Playgroud)
我有与此阵列(即平行一些其他阵列_fillColors,_mutuablePaths),其具有的值的相同的量.我遍历所有这些数组以检查数据,在这个特定的实例中,所有数组_strokeColors都必须为NULL.但是,我注意到上面的数组大小为0.
初始化这样的数组需要为每个值读取NULL的模式是什么?
我设法创建Array的MyLocation与在第2个选项卡设置的距离属性的对象tabBarController.在我的第二个标签中,我得到它viewDidLoad:
[self setAnnotationsToSort:myDelegate.annotationsToSort];
Run Code Online (Sandbox Code Playgroud)
在这一行之后我称这种方法:
-(void)sort{
NSSortDescriptor *sortDescriptor;
sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"distance" ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray;
sortedArray = [self.annotationsToSort sortedArrayUsingDescriptors:sortDescriptors];
[self.tableView reloadData];
}
Run Code Online (Sandbox Code Playgroud)
这应该排序我的Array.但是我tableView目前加载了未分类的版本Array,self.annotationsToSort.我如何重新加载tableView但强制它使用新的sortedArray?
我有一个UITableView从sql db读取数据.
当我重新排序数据时,它只会改变顶部和底部数据

从上到下拖动1

当我让它在5时它只切换顶部和底部.
我使用以下内容
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
[myStringsArray exchangeObjectAtIndex:fromIndexPath.row withObjectAtIndex:toIndexPath.row];
}
Run Code Online (Sandbox Code Playgroud)
我如何重新排序列表?所以它将是2,3,4,5,1而不是5,2,3,4,1
我有一个NSMutableArray,我想检查是否有一个对象,其中某个属性设置为特定值.例如,数组充满了用户,我想检查是否有一个变量user_id设置为67的对象.有没有办法用块或谓词或其他东西执行此操作而不必循环遍历数组?
我有一系列随机属性我想分配给我正在开发的游戏中的设备.
我在下面使用的代码是返回NSArray.我很感兴趣,如果有方法从该数组中获取项索引而不获取重复值.显而易见的解决方案是使用返回的数组创建一个可变数组,执行随机操作,删除返回的项目并循环直到收到项目数.
但是有没有不同的方法从NSArray获取X随机项而不会重复?
//get possible enchantments
NSPredicate *p = [NSPredicate predicateWithFormat:@"type = %i AND grade >= %i", kEnchantmentArmor,armor.grade];
NSArray* possibleEnchantments = [[EquipmentGenerator allEnchantmentDictionary] objectForKey:@"enchantments"];
//get only applicable enchantments
NSArray *validEnchantments = [possibleEnchantments filteredArrayUsingPredicate:p];
NSMutableArray* mutableArray = [NSMutableArray arrayWithArray:validEnchantments];
NSDictionary* enchantment = nil;
if(mutableArray.count>0)
{
//got enchantments, assign number and intensity based on grade
for (int i = 0; i<3;i++)
{
enchantment = mutableArray[arc4random()%mutableArray.count];
[mutableArray removeObject:enchantment];
//create enchantment from dictionary and assign to item.
}
}
Run Code Online (Sandbox Code Playgroud) 我已经找到了很多关于如何将数据编码成key => value样式的文档,但是我如何从数组中提取键和值呢?我正在使用NSArray.
我所追求的是obj-c与php的对等 foreach($array as $k => $v)
我正在检查我的一个数组是否包含了Nsobject我创建的自定义方式.我正在使用ContainsObjectmethod.my问题是包含对象不能正常工作.即使我在数组中有相同的对象它没有返回真值.
if([self.arrSelectedInterest containsObject:interest_ent])
Run Code Online (Sandbox Code Playgroud)
我还附加了我的调试点的屏幕截图,显示了nsarray和比较对象的值,并且我发现它interest_ent是一个包含in的同一个对象,self.arrSelectedInterest
但它总是返回false.

任何人都知道如何检查我的自定义nsobject的nsarray是否包含特定的对象?
以下是我的哈希和isEqual方法,我已经覆盖并在nsobejct中抛出我的属性类型.@interface InterestEntity:JSONModel
@property (strong, nonatomic) NSString* InterestId;
@property (strong, nonatomic) NSString* Name;
@property (strong, nonatomic) NSString<Optional>* Code;
@property (strong, nonatomic) NSString<Optional>* Description;
@property (strong, nonatomic) NSArray<Optional>* Hashtags;
- (NSUInteger)hash {
NSUInteger result = 1;
NSUInteger prime = 31;
result = prime * result + [self.InterestId hash];
result = prime * result + [self.Name hash];
result = prime * result + [self.Code hash];
result = prime * result …Run Code Online (Sandbox Code Playgroud) 我想在tableView中使用searchbar.我有一个带有人的NSArray(NSObject).在cellForRow中,我正在使用此代码:
Person *person = [[self.sectionedPersonName objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
cell.textLabel.text = person.fullName;
Run Code Online (Sandbox Code Playgroud)
并为searchBar这段代码:
- (void)searchForText:(NSString *)searchText {
if (searchText.length > 0) {
searchBar = YES;
} else {
searchBar = NO;
}
NSLog(@"%@", self.sectionedPersonName);
NSPredicate *predicate; = [NSPredicate predicateWithFormat:@"SELF.fullName beginswith[c] %@", searchText];
self.searchResults = [self.sectionedPersonName filteredArrayUsingPredicate:predicate];
}
Run Code Online (Sandbox Code Playgroud)
self.sectionedPersonName 包含这个:
(
(
"<Person: 0x7fc0f6012650>"
),
(
),
(
),
(
"<Person: 0x7fc0f600f8a0>",
"<Person: 0x7fc0f60132e0>"
),
(
),
(
),
(
),
(
"<Person: 0x7fc0f6012d80>"
),
(
),
(
"<Person: 0x7fc0f6012b30>"
),
(
"<Person: …Run Code Online (Sandbox Code Playgroud) nsarray ×10
ios ×9
objective-c ×9
arrays ×1
cocoa-touch ×1
compare ×1
iphone ×1
nsobject ×1
nspredicate ×1
random ×1
uisearchbar ×1
uitableview ×1