我以这种方式将许多不同的图像保存到文档目录:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
int num = arc4random() % 100000000000000;
NSString* path = [documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat:@"%dtest.png", num]];
NSData* data = UIImagePNGRepresentation(image);
[data writeToFile:path atomically:YES];
Run Code Online (Sandbox Code Playgroud)
然后我用这种方式读取文件:
NSString *stringPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
//NSString* FinalPath = [documentsDirectory stringByAppendingPathComponent: @"Images/"];
NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory error:&error];
for(int i=0;i<[filePathsArray count];i++)
{
NSString *strFilePath = [filePathsArray objectAtIndex:i];
if ([[strFilePath pathExtension] isEqualToString:@"jpg"] || [[strFilePath pathExtension] …Run Code Online (Sandbox Code Playgroud) 我认为应该有一个简单的解决方案,但我无法弄清楚。我想要做的是通过其路径(未在屏幕上呈现)获取图像的宽度/高度。
喜欢:
var img = ImageInfo(path);
alert(img.width);
Run Code Online (Sandbox Code Playgroud)
(我想用普通的 javascript 来做这个)
在C++中,我可以通过引用传递指针
void someFunction(int * & x) {
...
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在Objective-C .mm文件中使用相同的语法时,编译器会因为链接器错误而对我大吼大叫,说这些是arm 7体系结构中的未识别符号.
我有一个Box2D辅助函数,定义如下
bool isBodyCollidingWithDestTerrain(b2Body * body, DestuctibleTerrain * dter, CGPoint * colPt) {
...
}
Run Code Online (Sandbox Code Playgroud)
我希望能够通过引用传递DestructibleTerrain*,这样我就可以将指针指向指向碰撞中涉及的DestructibleTerrain的指针.
我对Objective-C的了解有限,我将不胜感激.
我有一个在新的iPhone 5视网膜宽屏设备之前创建的应用程序.现在我正在尝试支持这种高清宽屏.
我调整主ViewController和主窗口XIB文件,以便将它们设置为Autolayout.我可以验证通过IB显示的宽度/高度显示为320 x 568.
但是,当我在模拟器中运行时,我可以看到高度仍然是480.用于打印高度(和宽度)的代码在主视图控制器的viewWillAppear方法中:
[UIScreen mainScreen].bounds]
Run Code Online (Sandbox Code Playgroud)
为什么size.height仍然是480而不是568?
我正在尝试使用NSSortDescriptorCore Data来对构建号/软件版本(NSStrings)进行排序.构建号实际上只是NSStrings,但它似乎很难用.我猜是因为多个不规则的小数点.
例如,我想对以下内容进行排序.
1.7.6
1.8
1.6.2
1.9.0.1
2.0
Run Code Online (Sandbox Code Playgroud)
每行代表一个NSString.
我该如何正确地做到这一点还是我应该尝试另一种方式?
下午好,
如何检查日期是否在两个日期之间?我知道我必须先将数据字符串转换为 NSDate 值:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/yyyy"];
NSDate *date1 = [dateFormatter dateFromString:@"01/01/2001"];
NSDate *date2 = [dateFormatter dateFromString:@"01/01/2010"];
NSDate *userDate = [dateFormatter dateFromString:@"12/12/2001"];
Run Code Online (Sandbox Code Playgroud)
然后我必须使用 if 语句,但我不太确定如何去做。这是我需要的:
if (userDate 在 date1 和 date2 之间) {
}
对 if 语句的任何帮助将不胜感激。谢谢!
我正在尝试设置一个查询,以便拉出今天生日那天的所有客户.我正在使用phpmyadmin localhostvia Unix socket,生日被设置为DATE.
所有我需要的是返回的firstname (emp.emp_firstname as第一个名字),lastname (emp.emp_lastname as姓氏)和date of birth (emp_birthday as 'dob')
我有一台2008年晚些时候的MacBook,我有一个标准帐户.我想使用Xcode,但点击Run之后会询问我无法访问的管理员密码.那么有什么方法我仍然可以使用Xcode?这适用于终端应用程序以及iOS项目.它要求运行调试器工具.
我正在尝试为库编写单元测试.库中的方法返回字符串,我想确保它返回正确的字符串.但是STAssertEqualsSenTestKit中的某个宏看起来却是不同的值,即使它是相同的.
你可以看到描述部分清楚地表明两个字符串值是相同的,但是这个宏抱怨它们的值是不同的.当我从方法返回静态字符串时(就像返回一样@"op_user")它传递了测试用例.任何人都知道导致此测试失败的原因是什么?
我知道在python中你可以在1972年或者那里的某个时间以毫秒为单位获得时间.我想知道Objective-C中是否有类似的功能,或者我是否需要做一些事情来计算它.
我正在为iOS编写一个表视图应用程序,我正在实现天气.
在我的第一部分(第0部分)中,我有9行(0-8)的基本数据.
-(NSArray *)currentDataValues
{
return @[
[self dataValueForKey:@"cloudCover"],
[self dataValueForKey:@"dewPoint"],
[self dataValueForKey:@"humidity"],
[self dataValueForKey:@"precipIntensity"],
[self dataValueForKey:@"precipProbability"],
[self dataValueForKey:@"temperature"],
[self dataValueForKey:@"visibility"],
[self windDirection:[self.currentValuesDict valueForKey:@"windBearing"]],
[self dataValueForKey:@"windSpeed"]];
}
Run Code Online (Sandbox Code Playgroud)
然后在我的cellForRowAtIndexPath中,我有以下内容.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellIdentifier;
if (indexPath.section == 0) {
cellIdentifier = @"Summary Cell";
} else {
cellIdentifier = @"Minutely Cell";
}
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellIdentifier];
}
if([indexPath section] == 0){
cell.textLabel.text = [self.currentDataPoints objectAtIndex:[indexPath row]];
cell.detailTextLabel.text = …Run Code Online (Sandbox Code Playgroud) 如果这是初步的,我道歉,但由于不知道该怎么称呼,我似乎无法找到我正在寻找的解释.
当您创建一个新类,其文件名是一个已经存在的类,后跟一个+符号,后跟另一个名称时,它会调用什么.[现有班级] + [新班级] .m
即NSString + CSSizing.m
// NSString+CSSizing.h
@interface NSString (CSSizing)
// NSString+CSSizing.m
@implementation NSString (CSSizing)
Run Code Online (Sandbox Code Playgroud)
我知道他们基本上会向基类添加其他方法,但我不知道这究竟是什么.另外,是否可以使用上面的示例创建CSSizing实例?
编辑:正如人们在下面指出的那样,问题与断言有关。谢谢您的帮助!
我有一个枚举集,我试图将其等同,但由于某种原因,它无法正常工作。其声明如下:
typedef NS_ENUM(NSUInteger, ExUnitTypes) {
kuNilWorkUnit,
kuDistanceInMeters,
//end
kuUndefined
};
Run Code Online (Sandbox Code Playgroud)
我在这里使用它:
+(NSString*) ExUnitDescription: (ExUnitTypes) exUnit
{
if (exUnit == kuNilWorkUnit)
{
assert("error with units");
}
///.... more stuff
}
Run Code Online (Sandbox Code Playgroud)
Xcode不会触发我的断言。编辑:断言仅用于测试。我也用过NSLog。即使该值显然是kuNilWorkUnit,该条件的取值也不是正确的。

有人对我做错事情有任何建议或想法吗?
objective-c ×8
ios ×2
assert ×1
cocoa-touch ×1
core-data ×1
javascript ×1
macos ×1
mysql ×1
phpmyadmin ×1
uiscreen ×1
unit-testing ×1
xcode ×1