我一直在尝试这个 Twitter api 的东西,它真的很令人困惑......
使用以下代码时,我一直收到 EXC_BAD_ACCESS 错误访问...这里有什么问题?
NSURL *followingURL = [NSURL URLWithString:@"https://api.twitter.com/1/users/lookup.json"];
// Pass in the parameters (basically '.ids.json?screen_name=[screen_name]')
id fromIntToNum = [NSNumber numberWithInteger: friID];
NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:@"159462573", @"user_id", nil];
// Setup the request
twitterRequest = [[TWRequest alloc] initWithURL:followingURL
parameters:parameters
requestMethod:TWRequestMethodGET];
// This is important! Set the account for the request so we can do an authenticated request. Without this you cannot get the followers for private accounts and Twitter may also return an error if you're doing too many requests
[twitterRequest setAccount:theAccount];
// Perform the request for Twitter friends
[twitterRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
if (error) {
/*
// deal with any errors - keep in mind, though you may receive a valid response that contains an error, so you may want to look at the response and ensure no 'error:' key is present in the dictionary
NSLog(@"%@",error);*/
} else {
/*NSError *jsonError = nil;
// Convert the response into a dictionary
NSDictionary *twitterGrabbedUserInfo = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONWritingPrettyPrinted error:&jsonError];
// Grab the Ids that Twitter returned and add them to the dictionary we created earlier
NSLog(@"%@", [twitterGrabbedUserInfo objectForKey:@"screen_name"]);*/
}
}];
我分隔了我的代码失败的那一行...
是什么导致了这个 Twitter API 问题?
以下行导致崩溃:::
[twitterRequest performRequestWithHandler:^(NSData *responseData,
NSHTTPURLResponse *urlResponse, NSError *error) {
我有时也会遇到这个错误:
[__NSCFNumber credentialForAccount:]: unrecognized
更新:我注释掉了处理程序并制作了 TwitterRequest 和 ivar,但它仍然崩溃...
最佳答案
在你的 block 中你寻找一个错误,但如果你得到一个你记录它并继续。您应该放入一个“else”语句,只有在没有错误的情况下才继续。
为什么不尝试注释掉处理程序中的所有代码 - 不要做任何事情 - 看看是否会崩溃。然后尝试仅使用错误代码。然后尝试使用 JSON 序列化,最后一行。如果您能找到导致问题的 block 部分,那将会有所帮助。
此外,我怀疑 performRequestWithHandler: 不会阻塞,但希望您在 block 内通知您的类请求已完成。如果是这样,则意味着“TWRequest *twitterRequest”应该是一个 ivar 或属性,并且您需要允许在处理程序完成时调用某些方法。您的崩溃可能是由于 ARC 在对象运行时重新分配了您的对象。
编辑: 请注意,TWRequest 类描述中说:“使用 initWithURL:parameters:requestMethod: 方法来初始化传递所需属性值的新创建的 TWRequest 对象。”它说的是 PLURAL 属性,表示大于 1。难道它也期望“credentialForAccount”属性?您必须阅读 Twitter 文档才能找到所有必需的属性。
编辑2: 好吧,我们甚至不知道您是否已经达到处理程序的程度。在那里放一个 NSLog 但我怀疑它永远不会那么远。如果为真,则留下三种可能性:
a) 它不喜欢这个 URL(虽然这看起来不错)
b) 你缺少它期望的一些参数
c) id 不喜欢“theAccount”对象——它是一个有效的 ACAccount 对象吗?试试 NSLogging 吧。
它必须是这三件事之一。
关于iphone - EXC_BAD_ACCESS -iPhone objective-c ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11633026/
我正在尝试编写一个将文件上传到AWS并公开该文件的Ruby脚本。我做了以下事情:s3=Aws::S3::Resource.new(credentials:Aws::Credentials.new(KEY,SECRET),region:'us-west-2')obj=s3.bucket('stg-db').object('key')obj.upload_file(filename)这似乎工作正常,除了该文件不是公开可用的,而且我无法获得它的公共(public)URL。但是当我登录到S3时,我可以正常查看我的文件。为了使其公开可用,我将最后一行更改为obj.upload_file(file
我创建了一个文件,这样我就可以在lib/foo/bar_woo.rb中的许多模型之间共享一个方法。在bar_woo.rb中,我定义了以下内容:moduleBarWoodefhelloputs"hello"endend然后在我的模型中我正在做类似的事情:defMyModel解释器提示它期望bar_woo.rb定义Foo::BarWoo。《使用Rails进行敏捷Web开发》一书指出,如果文件包含类或模块,并且文件使用类或模块名称的小写形式命名,那么Rails将自动加载文件。因此我不需要它。定义代码的正确方法是什么,在我的模型中调用代码的正确方法是什么? 最佳答案
我尝试在我的应用中只使用:symbols作为关键词。我尝试在:symbol=>logic或string=>UI/languagespecific之间做出严格的决定但我也得到了每个JSON的一些“值”(即选项等),因为JSON中没有:symbols,所以我调用的所有哈希都具有“with_indifferent_access”属性。但是:数组是否有相同的东西?像那样a=['std','elliptic',:cubic].with_indifferent_accessa.include?:std=>true?编辑:将rails添加到标签 最佳答案
我在使用session变量时遇到问题。我有两个名为“graduate_students_controller”和“current_students_controller”的Controller。这些Controller中的每一个都控制不同的View文件。我在这两个Controller中使用session变量来存储session信息。问题来了。假设我有两个View文件“reports/current_students_list”、“reports/graduate_students_list”,每个文件都由上述Controller单独控制。现在,如果我尝试从同一浏览器中打开这两个网页并尝
我正在尝试将db2数据库迁移到RubyonRails,但是当我运行railsgscaffold时,我得到了这个:Rails错误:无法访问日志文件。请确保/home/.../log/development.log存在并且是chmod0666。日志级别已提高到WARN,输出定向到STDERR,直到问题得到解决。我检查过,我的development.log不存在!我不确定为什么,因为我在安装过程中遵循了每一步,但我的文件仍然不存在。我怎样才能创建它?我已经尝试卸载并重新安装Rails,但问题仍然存在。 最佳答案 也许只做它要求你做的事?:
我在使用ActiveAdmin时遇到问题。以下是版本:ruby'2.2.1'rails'4.2.0'activeadmin:1.0.0.pre1arbre:1.0.3(提到这个是因为它似乎与我的问题有某种联系)我们升级到rails4.2并且还必须升级activeadmin(从0.5开始)。经过几次调整(尤其是授权系统)之后,一切似乎都很好,除了一个大问题:我只能访问索引页面。当转到具有ID的页面时(例如:“http://localhost:3000/admin/companies/2968”),我收到此错误:没有路由匹配{:action=>"edit",:controller=>"ad
我正在构建一个与RubyonRails后端对话的iPhone应用程序。RubyonRails应用程序还将为Web用户提供服务。restful_authentication插件是提供快速和可定制的用户身份验证的绝佳方式。但是,我希望iPhone应用程序的用户在新列中存储一个由手机的唯一标识符([[UIDevicedevice]uniqueIdentifier])自动创建的帐户。稍后,当用户准备好创建用户名/密码时,帐户将更新为包含用户名和密码,iPhone唯一标识符保持不变。用户在设置用户名/密码之前不能访问该网站。然而,他们可以使用iPhone应用程序,因为该应用程序可以使用它的标识符
我想创建一个通用的字符串操作类,可以在我的Rails应用程序中跨模型、View和Controller使用。现在,我正试图将一个模块放入我的lib目录中,我只是试图访问Rails控制台中的函数来测试它。我已经尝试了很多来自类似问题的技术,但我无法让它发挥作用。在我的lib/filenames.rb文件中:moduleFilenamesdefsanitize_filename(filename)#Replaceanynon-letterornon-numbercharacterwithaspacefilename.gsub!(/[^A-Za-z0-9]+/,'')#removespaces
我是一名新的Ruby程序员,我的一位同事帮助我开始编写了以下代码,该代码在他的环境中运行良好。但是,当我尝试在自己的环境中运行它时,出现以下错误:undefinedmethod'with_indifferent_access'for#(没有方法错误)有问题的方法在代码中出现了两次:require'rubygems'gem'activerecord'gem'activesupport'gem'sailthru-client'require'active_support'require'active_record'require'sailthru'#SetupourSailthruobje
我有一个使用deviseonrails3的应用程序。我想启用http身份验证,以便我可以从iPhone应用程序向我的网络应用程序进行身份验证。如何从我的iPhone应用程序进行身份验证以进行设计?这安全吗?还是我应该进行不同的身份验证? 最佳答案 从设计的角度来看,您有3个选择:1)使用基本的http身份验证:您的iPhone应用程序有一个secretkey-这是在您的iPhone应用程序代码中烘焙的-用于对网络应用程序的每个请求进行身份验证。Google搜索:“设计基本的http身份验证”2)您可以通过在您的iPhone应用程序中