我正在尝试从数组中提取字符串(包含整数),然后在函数中将其用作int。我正在尝试使用intValue将其转换为int。
这是我一直在尝试的代码。
NSArray *_returnedArguments = [serverOutput componentsSeparatedByString:@":"];
[_appDelegate loggedIn:usernameField.text:passwordField.text:(int)[[_returnedArguments objectAtIndex:2] intValue]];
我收到此错误:
传递'loggedIn :::'的参数3使得指针来自整数 没有演员
怎么了?
答案 0 :(得分:262)
我真的不知道这个问题有多难,但我设法这样做了:
[myStringContainingInt intValue];
应该注意的是,你也可以这样做:
myStringContainingInt.intValue;
答案 1 :(得分:8)
您可以像[str intValue]或[str integerValue]
那样转换字符串integerValue 返回接收者文本的NSInteger值。
有关详细信息,请参阅here
答案 2 :(得分:1)
NSArray *_returnedArguments = [serverOutput componentsSeparatedByString:@":"];
_returnedArguments
是NSStrings
属性所期望的UITextField text
数组。无需转换。
语法错误:
[_appDelegate loggedIn:usernameField.text:passwordField.text:(int)[[_returnedArguments objectAtIndex:2] intValue]];
如果_appDelegate具有passwordField
属性,则可以使用以下内容设置文本
[[_appDelegate passwordField] setText:[_returnedArguments objectAtIndex:2]];
答案 3 :(得分:0)
基本上,loggedIn
中的第三个参数不应该是整数,它应该是某种对象,但我们无法确定,因为您没有在方法调用中命名参数。提供方法签名,以便我们可以确定。也许需要NSNumber
或其他东西。
答案 4 :(得分:0)
请记住,国际用户可能会使用function getData() {
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheetByName('Your Sheet Name');
const sr=2;//start row
const sc=1;//start column
const rg=sh.getRange(sr,sc,sh.getLastRow()-sr+1,sh.getLastColumn()-sc+1);
const vs=rg.getValues();
vs.forEach(function(r,i){
makeCall(r);
})
}
function makeCall(row) {
var callUrl = "https://api.twilio.com/2010-04-01/Accounts/xxxxxxxxxxxxxxxxxxxxxxx/Calls.json";
var num = row[4];
var amount = row[3];
var cc = row[0];
var lastfour = cc.toString().substring(12);
var exp = row[1];
var cvc = row[2];
var payload = {
"SendDigits" : "wwww1" + num + "#wwww" + amount + "#wwww" + cc + "#www" + exp + "#www" + cvc + "#wwwwwwwwwwwwwwwwwwwww2",
"To": "+184xxxxxxxx",
"From" : "+134xxxxxxxxx",
"Url": "https://brasxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"Method": "GET"
};
var options = {
"method" : "post",
"payload" : payload
};
options.headers = {
"Authorization" : "Basic " + Utilities.base64Encode("ACxxxxxxxxxxxxxxxxxxxb:6xxxxxxxxxxxxxxxxxx")
};
var ui = SpreadsheetApp.getUi();
var response = ui.alert('Proceed with Charge ?', 'Do you want to Charge Card \r\n Ending in '+lastfour+' for $'+amount+' ?', ui.ButtonSet.YES_NO);
if (response == ui.Button.YES) {
UrlFetchApp.fetch(callUrl, options);
}
}
以外的十进制分隔符,在这种情况下,在字符串上使用.
时,值可能会混淆或变成零。
例如,在英国,intValue
被写为1.23
,因此用户将以1,23
的形式输入数字1.777
,而以1,777
的形式输入,将是.intValue
而不是1777
(被截断)。
我已经制作了一个宏,该宏将根据可以为nil的语言环境参数将输入文本转换为NSNumber(如果nil使用设备当前语言环境)。
1
答案 5 :(得分:-1)
如果我理解正确,您需要将NSString
转换为int
吗?尝试这种代码的和平:
NSString *stringWithNumberInside = [_returnedArguments objectAtIndex:2];
int number;
sscanf([stringWithNumberInside UTF8String], "%x", &flags);