【发布时间】:2016-03-30 07:31:53
【问题描述】:
【问题讨论】:
-
您要达到的目的请解释一下
-
请发布(相关的)代码(以及确切的错误消息),而不是屏幕截图的链接。
标签: objective-c ios9.2
【问题讨论】:
标签: objective-c ios9.2
尝试像这样编写 curl url:-
NSString* curlURL = [NSString stringWithFormat:@"https://api.500px.com/v1/photos?.....rpp=20&page=%d", 123];
希望给定的字符串格式对您有所帮助.. 谢谢
【讨论】:
一个更详细的问题。 首先快速回复:
你不能从 objC 调用 swift plain 函数。 您可以调用方法,但不能调用普通的 f。
见下文:
// 快速类:
@objc class Klass: NSObject {
var a = 100
@objc public func F1()->String{
return "F1"
}
@objc public func F2()->NSString{
return "f2"
}
}
func myF()->String{
return "FFF"
}
func myG()->NSString{
return "GGG"
}
在 objC 中:
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
Klass* k = [Klass new];
NSString * s1 = [k F1];
NSString * s2 = [k F2];
s1 = k.F1;
s2 = k.F2;
NSString * sf = myF(); // ERROR! ... Implicit conversion of 'int' to 'NSString *' is disallowed with ARC
NSString * sg = myG(); // ERROR! " " "
}
如果添加纯 C 代码(添加包含等...)
//file:plainFunctions.c
#include "plainFunctions.h"
int myN()
{
return 100;
}
您可以致电:
- (void)viewDidLoad {
[super viewDidLoad];
int n = myN();
}
甚至:
//h:
char * myC(void);
// objC:
NSString * fromC = [NSString stringWithCString:myC() encoding: NSUTF8StringEncoding];
【讨论】:
当心comma operator。消息说... disallowed with ARC 是一个红鲱鱼,这里的问题是您正在为NSString* 分配一个数字。
从你的截图中看不太清楚,我在这里总结一下:
NSString *currurl = (@"https://some-string-%d", 'abcd');
.. 看起来您正在尝试编写 NSString*。
但是,编译器正在评估一个由NSString*、逗号运算符和一个字符组成的表达式,其中结果是该逗号运算符的右手操作数。所以它试图将abcd 分配给currurl。
请记住,字符在基于 C 的语言中是整数类型(在 Java 中也是如此),因此投诉 Implicit conversion of 'int' to 'NSString *'
【讨论】: