在我的iPhone上,我正在运行一款名为Caissa Chess的应用程序.在向制造商注册应用程序后(这是可选的)我收到了一封包含国际象棋拼图的电子邮件.邮件消息的关键部分,显示了国际象棋图,如下所示:
<a href="chess://puzzle/8/p1R3p1/4p1kn/3p3N/3Pr2P/6P1/PP3K2/8 w ?term=w2&solution=c7xg7&description=Amura%20vs%20Carlos%20Bulcourf%2C%20Villa%20Ballester%2C%201996"><img src="cid:image1"></a>
Run Code Online (Sandbox Code Playgroud)
点击此URL显示的图表退出Mail.app并打开Caissa Chess,然后显示图表,并允许您解决难题.
这是如何工作的?我想为iPhone制作一个小应用程序,需要一个外部文件,通过电子邮件发送.我将首先需要了解发生了什么.
chess:// 如何以及在何处定义将打开哪个应用程序? 我确信这个机制已经记录在某个地方,但是我没有描述它的书籍,谷歌也没有帮助我.
先感谢您
Sjakelien
这是一个非常基本的问题,我相信你能够快速回答.请不要嘲笑我的无知.
我有一个字符串,我想与一个字符串数组进行比较.只有当字符串不是数组的一部分时,我才想执行操作.我尝试了以下代码,但不起作用.我明白为什么,但我想不出有办法正确地做到这一点.
请帮助我摆脱痛苦.
提前致谢
Sjakelien
-(void) findRedundant: (NSString *) aString {
#define ALPHA_ARRAY [NSArray arrayWithObjects: @"A", @"B", @"C", nil]
NSUInteger f;
for (f = 0; f < [ALPHA_ARRAY count]; f++)
{
NSString * stringFromArray = [ALPHA_ARRAY objectAtIndex:f];
if ([aString isEqualToString:stringFromArray]) {
// do nothing
} else {
//do something
}
}
}
[self findRedundant:@"D"];
Run Code Online (Sandbox Code Playgroud) 我的文件系统(iPhone)中有两个xml文件(a.xml和b.xml).现在我想知道这些文件是否包含完全相同的数据.大多数情况下,这种比较都是正确的,因为b.xml是copyItemAtPath:操作的结果.除非它被更新的信息覆盖.比较这些文件最有效的方法是什么?
任何建议都是非常受欢迎的.
谢谢你
Sjakelien
更新:
我最终这样做了:
oldData = [NSData dataWithContentsOfFile:PathToAXML];
newData = [NSData dataWithContentsOfFile:PathToBXML];
Run Code Online (Sandbox Code Playgroud)
然后将其与:
[newData isEqualToData:oldData];
Run Code Online (Sandbox Code Playgroud)
问题仍然是:效率高于:
oldData = [NSString dataWithContentsOfFile:PathToAXML];
newData = [NSString dataWithContentsOfFile:PathToBXML];
[newData isEqualToString:oldData];
Run Code Online (Sandbox Code Playgroud) 所以,我写完了我的第一个iPhone应用程序,并且已经将它发送给一组beta测试人员.每个人都很高兴,除了这个人注意到在运行我的应用程序后,另一个应用程序不再启动了.
不太了解内存管理,我开始查看Instruments中的Leaks图表,并注意到我的应用程序中发生了一些泄漏.
三个问题:
谢谢Sjakelien
在下面的代码中,我尝试从plist中读取数据:
-(void)readPreferences
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray * myAppDefaults = [defaults mutableArrayValueForKey:@"LastList"];
myCustomObject * savedObject;
NSUInteger i;
for (i = 0; i < [myAppDefaults count]; i++)
{
NSArray * thisArray = [myAppDefaults objectAtIndex:i];
savedObject.value1 = [thisArray objectAtIndex:0];
savedObject.value2 = [thisArray objectAtIndex:1];
savedObject.value3 = [thisArray objectAtIndex:2];
savedObject.value4 = [myAppDefaults objectAtIndex:3];
[objectsArray addObject:savedObject];
}
}
Run Code Online (Sandbox Code Playgroud)
不知何故,当我尝试设置"savedObject.value1"时,我收到"EXC_BAD_ACCESS"错误.
我意识到这很可能是基本的内存管理,或指针/对象的混乱,但我还在学习.我希望有人可以帮助我.最好的问候Sjakelien
objective-c ×3
file ×2
iphone ×2
arrays ×1
associations ×1
cocoa ×1
cocoa-touch ×1
compare ×1
comparison ×1
memory-leaks ×1
string ×1
types ×1
url ×1