我正试图在我的一个应用程序中实现Facebook,因此遵循Hackbook上的官方Facebook教程.https://developers.facebook.com/docs/howtos/login-with-facebook-using-ios-sdk/
我按照描述实现了所有内容,但我没有收到任何错误或警告.然而,当我尝试构建应用程序时,我得到17个Mach-O链接器错误.
Undefined symbols for architecture i386:
"_FBSessionStateChangedNotification", referenced from:
-[ForeverMainViewController sessionStateChanged:state:error:] in ForeverMainViewController.o
"_sqlite3_bind_double", referenced from:
-[FBCacheIndex _updateEntryInDatabaseForKey:entry:] in FacebookSDK(FBCacheIndex.o)
-[FBCacheIndex _writeEntryInDatabase:] in FacebookSDK(FBCacheIndex.o)
"_sqlite3_bind_int", referenced from:
-[FBCacheIndex _updateEntryInDatabaseForKey:entry:] in FacebookSDK(FBCacheIndex.o)
-[FBCacheIndex _writeEntryInDatabase:] in FacebookSDK(FBCacheIndex.o)
-[FBCacheIndex _trimDatabase] in FacebookSDK(FBCacheIndex.o)
"_sqlite3_bind_text", referenced from:
-[FBCacheIndex _updateEntryInDatabaseForKey:entry:] in FacebookSDK(FBCacheIndex.o)
-[FBCacheIndex _writeEntryInDatabase:] in FacebookSDK(FBCacheIndex.o)
-[FBCacheIndex _readEntryFromDatabase:] in FacebookSDK(FBCacheIndex.o)
-[FBCacheIndex _removeEntryFromDatabaseForKey:] in FacebookSDK(FBCacheIndex.o)
"_sqlite3_close", referenced from:
___23-[FBCacheIndex dealloc]_block_invoke_0 in FacebookSDK(FBCacheIndex.o)
"_sqlite3_column_double", referenced from:
-[FBCacheIndex _readEntryFromDatabase:] in FacebookSDK(FBCacheIndex.o)
"_sqlite3_column_int", referenced from:
-[FBCacheIndex _readEntryFromDatabase:] in …
Run Code Online (Sandbox Code Playgroud) 当用户第一次启动应用程序时,他会弹出一个并且必须保存图像.它适用于模拟器和4S.但是当我用我的3G开始它时,一旦我选择了一张照片就会给我一个SIGABRT错误.我假设它是因为图片的大小过于挑选并因此声称所有的公羊 - 但这是相当奇怪的,因为我把它做得更小.这是代码:
- (void)viewDidLoad
{
[super viewDidLoad];
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"bild"] == nil) {
picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentModalViewController:picker animated:YES];
}
}
- (void)imagePickerController:(UIImagePickerController *) Picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
double compressionRatio=1;
NSData *imageData=UIImageJPEGRepresentation([info objectForKey:@"bild"],compressionRatio);
while ([imageData length]>5000) {
compressionRatio=compressionRatio*0.20;
imageData=UIImageJPEGRepresentation([info objectForKey:@"bild"],compressionRatio);
}
UIImage *yourUIImage;
yourUIImage = [info objectForKey:UIImagePickerControllerOriginalImage];
imageData = [NSKeyedArchiver archivedDataWithRootObject:yourUIImage];
[[NSUserDefaults standardUserDefaults] setObject:imageData forKey:@"bild"];
[[NSUserDefaults standardUserDefaults] synchronize];
[self dismissModalViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)
我在此行得到SIGABRT错误imageData = [NSKeyedArchiver archivedDataWithRootObject:yourUIImage];
我应该使用其他方法来调整图像大小吗?或者我应该将其保存为本地文件并在应用程序启动时检索它?(如果它是可能的)
慢慢地但我肯定我会发疯.在得到我的问题的解决方案和应用程序现在也接受空格后,它仍然不会将包含空格的数据添加到我的mysql数据库.这是代码:
NSString *strURL = [NSString stringWithFormat:@"http://www.bbc.com/phpFile.php?number=%@&name=%@&lastname=%@", number, firstName, lastName];
NSString *webStringURl = [strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]];
NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding];
NSLog(@"%@", strResult);
NSLog(@"%@", webStringURl);
Run Code Online (Sandbox Code Playgroud)
NSLog甚至告诉我它完全符合我的要求:
ProjectX[4003:15203] http://www.bbc.com/phpFile.php?number=11166&name=Yong%20Wang%20Ding&lastname=Blamblam
Run Code Online (Sandbox Code Playgroud)
每当变量不包含空格时,它都可以工作.当我在浏览器中打开php文件并手动输入变量(带空格)时,它会将它们添加到我的数据库中.我不知道为什么它与我的应用程序完全相同(?)时拒绝工作.
我遇到了一个奇怪的问题.我构建了一个mysql数据库,用户可以通过应用程序存储他的联系人.他只需点击按钮即可添加联系信息.然后,将数据添加到数据库中.
但是,当联系人的信息在其名字,姓氏或号码之间有空格时,应用程序拒绝接受数据.我没有收到错误消息或类似的东西,但我也没有得到任何确认.该记录在数据库中不存在.
我的php文件没有问题(文件肯定是正确的,我在这里检查了两次).这是我的代码:
NSString *strURL = [NSString stringWithFormat:@"http://www.abc.com/phpFile.php?number=%@&name=%@&lastname=%@", number, firstName, lastName];
NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]];
NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding];
NSLog(@"%@", strResult);
Run Code Online (Sandbox Code Playgroud)