我有一个字符串,只需要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) 我正在使用下面的代码在普通(未分组)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) 我正在尝试子类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) 有一个充满字典的数组喜欢这个:
(
{ 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) 我得到了一个NSDate例如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.我做错了什么?
根据我的理解,当推出一个新的时候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.我在运行循环完成后检查保留计数很长时间我也知道保留计数不是你应该信任的东西.
我想将viewControllers推送到我的主viewController上的一个区域.据我所知,除非您将它添加到UIWindow,否则不能使用NavigationController.
这个动画提醒UIScrollView水平滚动.但我想让它像NavigationController一样工作.当用户按下特定操作时,将更改ViewControllers.
ViewController2将是一个带有其他按钮的tableView.
ViewController3将成为一个从tableView更改对象的表单.
我想有一个函数,它需要一个星期的数字作为输入,并返回由此特定周产生的所有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)
}
如何以简单的方式完成?