小编Dav*_*vid的帖子

检查NSString是否仅包含字母数字+下划线字符

我有一个字符串,只需要az,0-9和_

如何检查输入是否有效?我试过这个,但它接受像å,ä,ö,ø等字母.

NSString *string = [NSString stringWithString:nameField.text];
NSCharacterSet *alphaSet = [NSCharacterSet alphanumericCharacterSet];
[string stringByTrimmingCharactersInSet:alphaSet];
[string stringByReplacingOccurrencesOfString:@"_" withString:@""];
BOOL valid = [[string stringByTrimmingCharactersInSet:alphaSet] isEqualToString:@""];
Run Code Online (Sandbox Code Playgroud)

objective-c ios

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

UITableview单元格高度不在空表中?

我正在使用下面的代码在普通(未分组)UITableView上创建更大更整洁的外观.它工作正常,除非我有一个空表,然后单元格的高度设置为正常高度.我有标准的Separatorstyle(灰色线条)所以如果它是空的,它看起来很糟糕.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    return 75;
}
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

编辑:

找到一个更好的解决方案,如果表格为"空",我甚至不显示行,而是显示指南文本.

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    if ([dataArray count] == 0) {
        [theTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
        [pleaseAddStuffText setHidden:NO];
    } else {
        [theTableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];
        [pleaseAddStuffText setHidden:YES];
    }
    return [dataArray count];
}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ipad ios4 ios

17
推荐指数
1
解决办法
3613
查看次数

对UIApplication进行子类化以覆盖sendEvent会导致崩溃

我正在尝试子类UIApplication来捕获所有触摸事件,这用于查看用户是否是afk.无论如何,它在您第一次启动应用程序时效果很好.如果你把它放在后台并再次打开它2次然后它会崩溃.我不知道是什么原因引起的.我在[super sendEvent:event]上获得了EXEC_BAD_ACCESS;

我的子类MyUI:

@implementation MyUI

- (void)sendEvent:(UIEvent *)event {
    [super sendEvent:event]; // <-- EXEC_BAD_ACCESS

    if (event.type == UIEventTypeTouches) {
        UITouch *touch = [event allTouches].anyObject;
        if (touch.phase == UITouchPhaseBegan) {
           // Calling some methods
        }
     }
}  
@end
Run Code Online (Sandbox Code Playgroud)

的main.m

int main(int argc, char *argv[])
{
    NSString* appClass = @"MyUI";
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, appClass, nil);
    [pool release];
    return retVal;
}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ipad ios4 ios

11
推荐指数
2
解决办法
6475
查看次数

NSSortDescriptor用数字作为字符串排序?

有一个充满字典的数组喜欢这个:

(
   { order = "10";
     name = "David"
   };
   { order = "30";
     name = "Jake";
   };
   { order = "200";
     name = "Michael";
   };
)
Run Code Online (Sandbox Code Playgroud)

当我像下面的代码一样使用NSSortDescriptor时,它只对第一个char进行排序,因此200低于30.我当然可以将"order"对象更改为NSNumber而不是字符串,它可以工作.但有没有办法将字符串排序为int值而不更改源对象?

NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"norder"  ascending:YES];
[departmentList sortUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
Run Code Online (Sandbox Code Playgroud)

更新:

感谢bandejapaisa.

这是iOS 5的工作版本(Xcode,其中包括编译).

NSArray *sortedArray;
sortedArray = [departmentList sortedArrayUsingComparator:(NSComparator)^(id a, id b) {
    NSNumber *num1 = [NSNumber numberWithInt:[[a objectForKey:@"norder"] intValue]];
    NSNumber *num2 = [NSNumber numberWithInt:[[b objectForKey:@"norder"] intValue]];

    return [num1 compare:num2];
}];
departmentList = [sortedArray mutableCopy];
Run Code Online (Sandbox Code Playgroud)

objective-c ios ios5

11
推荐指数
2
解决办法
5581
查看次数

工作日的NSDateComponents没有显示正确的工作日?

我得到了一个N​​SDate例如1/6 -12(星期五)并试图找出它的工作日.我的周从星期一开始,所以星期五应该是工作日5.

    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    [calendar setFirstWeekday:2];
    NSDateComponents *components = [calendar components:NSWeekdayCalendarUnit fromDate:firstOfJulyDate];
    NSLog(@"weekday %i",components.weekday);
Run Code Online (Sandbox Code Playgroud)

产出:工作日6

无论我设置setFirstWeekday到什么,输出将永远是6.我做错了什么?

objective-c nsdate nsdatecomponents ios ios5

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

当推送一个新的时,pushViewController应该释放oldController吗?

根据我的理解,当推出一个新的时候pushViewController应该释放旧的viewController

在这里,我只创建两个不同的viewControllers并推动它们.

    UINavigationController *navController = [[UINavigationController alloc] init];
    [self.window addSubview:navController.view];

    smallLayout = [[SmallViewController alloc] init];
    [navController pushViewController:smallLayout animated: NO];
    [smallLayout release];

    largeLayout = [[LargeViewController alloc] init];
    [navController pushViewController:largeLayout animated: NO];
    [largeLayout release];
Run Code Online (Sandbox Code Playgroud)

SmallViewControllerdealloc中永远不会被调用,当我检查保留计数时它仍然是1.我在运行循环完成后检查保留计数很长时间我也知道保留计数不是你应该信任的东西.

iphone objective-c ipad ios4 ios

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

如何在没有NavigationController的情况下推送子ViewControllers?

我想将viewControllers推送到我的主viewController上的一个区域.据我所知,除非您将它添加到UIWindow,否则不能使用NavigationController.

这个动画提醒UIScrollView水平滚动.但我想让它像NavigationController一样工作.当用户按下特定操作时,将更改ViewControllers.

ViewController2将是一个带有其他按钮的tableView.

ViewController3将成为一个从tableView更改对象的表单.

viewControllers的动画http://i55.tinypic.com/3589ysn.png

iphone objective-c ipad ios4 ios

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

所有NSDate的数组一周

我想有一个函数,它需要一个星期的数字作为输入,并返回由此特定周产生的所有NSDates的数组.

像这样的东西:

-(NSArray*)allDatesInWeek:(int)weekNumber {
    NSDate *today = [NSDate date];
    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    [calendar setFirstWeekday:2];
    NSDateComponents *todayComp = [calendar components:NSYearCalendarUnit fromDate:today];
    int currentyear = todayComp.year;
    /* Calculate and return the date of weekNumber for current year */
Run Code Online (Sandbox Code Playgroud)

}

如何以简单的方式完成?

objective-c nsdate ios ios5

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

标签 统计

ios ×8

objective-c ×8

ios4 ×4

ipad ×4

iphone ×4

ios5 ×3

nsdate ×2

nsdatecomponents ×1